2008-01-01から1年間の記事一覧

_BIND_TO_CURRENT_VCLIBS_VERSIONについてまじめに調べてみる

時間ができたというか、眠くて仕事ができないので(???)、現実逃避気味に、調べてみることにした。まず、_BIND_TO_CURRENT_VCLIBS_VERSIONマクロは、誰が見ているのかというと、これは、crtassem.h (Libraries Assembly information)というヘッダ。基本的に、…

再考:Visual C++ 9.0 SP1のランタイム問題

先日、「Visual C++ 9.0 SP1のランタイム問題」で書いた問題は、本当は問題なのかどうなのか。仕様といわれればそれまでっぽい。難しいのは、いままで、VS2003, VS2005は、SP1が当たったバージョンと当たってないバージョンでランタイムが異なっていたことだ…

a^0=1

実数の0乗が1になる理由を妹に納得させた個人的には難しすぎて納得がいかない。 a^nは、aをn回かけるんだから、 a^3=a*a*aところで、 a^n = 1 * a^nと、1をかけても値は変わらない。ということは、 a^3 = 1 * a * a * aそれなら、 a^0 = 1なことは自明なん…

VMware 6.5 beta

VM

今更だけれども、VMware 6.5について。VMware Fusionで実装されていたUnityとEasy Installが搭載される模様。

Visual C++ 9.0 SP1のランタイム問題

問題と言うほどでもないのだけれども、VC++9.0SP1でプログラムをリンク(/MD)すると、次のようなmanifest(これは64-bit版)が埋め込まれる。 <assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> </requestedprivileges></security></trustinfo></assembly>

Visual Studio 2008 SP1

やっと、Visual Studio 2008 SP1がリリースされました。いろいろな修正がなされていますが、個人的に気になるのは、前回書いた、「Visual C++ 9.0のランタイム問題」について。そのまえに、一応、コンパイラバージョンについて調べておくと、VC++ 9.0では、 …

LUMIX FX35

ジャスト\20,000でDMC-FX35を購入。2万円で1000万画素のデジカメが買える時代だと思うと驚く限り。1円で500画素も買える計算!というか、今週末に日本一高い山に登るので、そのときに携帯するデジカメとして購入しました。一応、予備バッテリーも購入。

S11HTアップデート

僕のモデムとして日夜働いてくれているS11HT(emonster)のアップデートが出ていたのでおそるおそるインストールしてみた。このアップデートで、ROMの内容が初期化されてしまうので注意が必要だが、どちらかというと時々勝手にハングアップする方が嫌だったの…

Opera Mobile 9.51b1

Opera Mobile 9.51b1をインストールしたら、あほみたいに環境が良くなった。これは使いやすい。十分な速度が出るし、ちょっとだけiPhoneチックだし、たしかに、PCがなくてもウェブを見るのは今までよりも格段に楽になった気がする。下はこのページを表示した…

数時間使った感想

なんか、動作が安定した気がする。少なくともタスクが殺せなくなる不具合が直っているし、描画が時々崩れる問題も直っているっぽい。

補足

サービスの起動に失敗した場合、イベントログに下のようなわかりやすいログが残る。 FoobarService サービスで、現在構成されているパスワードで .\espresso3389 としてログオンできませんでした。次のエラーが原因です: ログオンの失敗: このユーザーには、…

ユーザーに「サービスとしてログオン」権限を付与する

特定のサービスをユーザーアカウントで起動しようとすると、ユーザーにサービス権限がないことが問題になることがある。特にVistaでは、Administratorsに所属していてもこの権限がないので、いろいろとやっかいだ。これを解決するために、 // espresso3389と…

C#でUACに対応する

Windows Vistaで一部の処理で管理者権限が必要だが、起動時に管理者権限を要求するまでもないようなアプリがある。タスクマネージャやProcess Explorerはその典型例だが、こういうアプリにはシールドアイコンが付加されたボタンやメニューがある。このアイコ…

WOW64上での挙動

実はこのコードは、WOW64上の32bitバイナリでは、WOW64のプロセスのコマンドラインしかとれない。というのも、相手プロセスが64bitだった場合、NtQueryInformationProcess(ProcessBasicInformation)が失敗する。冷静に考えれば分かるけど、PVOIDとかを含んで…

リモートプロセスのコマンドラインパラメータを取得する

自分のプロセスのコマンドラインを取得するのは非常に簡単だ。main関数が存在するならargc, argvで取得できるし、そうでなければ、__argv, __argv, (__wargv/__targv)で取得することもできる。また、APIとしては、GetCommandLineというものもある。好んで使…

JScriptのevalを使う

JScriptのevalを簡単なパーサーとして使うぐらいは、探せば腐るぐらい見つかるけど、戻り値の型についての記述は意外と少ない。 とりあえず、JScriptからの戻り値をstringにせずに返してもらって、その型を調べてみるコード。 using System; using System.Te…

ShellExecuteExで起動したアプリの制御

アプリを無理矢理動作させて、無理矢理印刷させるという、ある意味使い古されたスキームなんだけど、ウェブを探してもShellExecuteExを使った例は少ない。理由は簡単で、つい最近まで、プロセスハンドルから、プロセスIDを取得できなかったという簡単なこと…

AssocCreate on C#

P/Invoke.netにもなかったので作ってみた。COM関連のマーシャリングは意外と難しい。というか、しばらくやっていないと完全に忘れてしまう。 class Assoc { public static string GetAssociatedCommandLine(string ext, string verb) { try { object obj; As…

数式を書いてみる

気づくと、TeXが使えるようになっているので、思い出しつつ書いてみる。blogを難しく書いてみただけ。

WOW64下での印刷

すっかり忘れていたので備忘録として書いておきます。WOW64の下で動作するアプリケーションが印刷を行う場合、その処理は、WOW64(32-bit)のプロセスから起動されたsplwow64.exeという代理プロセスによって行われます。詳しくはわかりませんが、プリンタドラ…

WIC一覧の取得

上記の方法で、いろいろなファイルが読み込めることがわかったが、一方で、WIC経由で開くことのできる(はずの)ファイル形式の一覧がほしいことがある。端的に言えば、「ファイルを開く」ダイアログのフィルターを作ったりするときに、*.*では格好悪すぎる。 …

画像を保存

処理が完了した画像を保存するには、IWICBitmapEncoderを利用する。 IWICBitmapEncoderのインスタンス作成時には、WIC GUIDs and CLSIDsにあるGUID_ContainerFormat*の中から、自分が使いたいフォーマットのエンコーダを選択する。 // TIFFエンコーダを作成 …

カラーマネジメント

WICでは、カラーマネジメントシステム(CMS)の利用もかなり簡単になっており、これらは、IWICColorTransformを利用して行う。また、上記のサンプルで、IWICBitmapFrameDecodeがIWICBitmapSourceにキャスト(QueryInterface)可能だったように、IWICColorTransfo…

Windows Imaging Componentで画像を読み込む

Windows Imaging Component (WIC)は、.NET Framework 3.0でも利用されている画像処理のフレームワークで、Vistaでは標準インストールされており、Windows フォトギャラリーなどでも利用されているほか、Windows XPでも、.NET Framework 3.5をインストールし…

ThinkPad X300 シリーズ 3 セル リチウム・ポリマー・ベイ・バッテリー

注文していたベイ・バッテリー(43R19466)が届く。これで、バッテリー残量を気にしないですむX300ライフが始まる!とかまぁ、現状の6セルバッテリーでも3時間持つので基本的には何の問題もないんですけどね。ベイにすでに入っているDVDコンボを抜いて、代わり…

low-fragmentation heap

会社で開発しているアプリケーションで、プログラムの[閉じる]ボタンを押しても数秒間固まったままになるものがあった。別に、WaitForXXXObject(s)しているわけでもないし、そんなに重い処理をしている訳でもない。理由がわからないまましばらく放置していた…

ブラウザにおけるカラーマネジメント

「Firefox3の知られざる高性能な色管理機能を有効にする方法」 によると、ついにFirefoxでもカラーマネジメント機能が搭載されたらしい。当然、デフォルトではOFFみたいなんですけど。 カラープロファイルがらみのテストなら、Is your system ICC Version 4 …

Visual C++ 9.0のランタイム問題

Visual C++ 9.0を使って共有DLL(/MD)でビルドしたコードを配布しようとすると(C++/CLIを利用すると必然的にこの状況になる)、CRTのDLLを配布する羽目になるんですが、これには、3つの方法があることになっています。 vcredist_x86.exeを利用する この方法は…

WOW64のファイルシステムのリダイレクトをOFFにする

会社で、WiXを使って、とあるプロジェクトのインストーラを作っているのですが、ほとんどは.NETなものの、一部のコードだけ、ドライバに依存するため、64bit対応するに当たって、system32(system64ではないんだなこれが。)にファイルをコピーしないといけま…

メモリの消費電力

今日知ったこと(2ch経由)。 4GBもメモリを搭載すると、メモリだけで10W弱の消費電力になる。 これは、無駄にメモリを乗せると稼働時間が短くなるだけだということだが・・・。