2009-05-30
■[技術メモ]64bit版Windowsで32bitアンマネージドなDLLを呼び出している.NETアプリケーションを64bit環境できちんと動かす方法 
参考:http://yamuyam.com/2009/01/visualstudio-build-any-x86-x64/
.NET Framework SDKに入ってる「http://msdn.microsoft.com/ja-jp/library/ms164699.aspx:CorFlags」を使う。
Visual Studio 200x コマンド プロンプトを起動して
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC>corflags 32Bitアンマネージドな.exe /32BIT+
という感じのことをすればおk
たまに署名されてるEXEに適用しようとすると
corflags : error CF012 : The specified file is strong name signed. Use /Force to force the update.
というようなエラーが出るので言われた通り/Forceをつけて
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC>corflags 32Bitアンマネージドな.exe /32BIT+ /Force
とやればおk
まぁnwhoisで読み込みとかやろうと思ったら64bitで棒読みちゃんが動かなかったのでそのためにやったんですけどね。
2010/1/14 追記
けっこうGoogle検索で来る方が多いので開発者の方向けに。
VisualStudioの設定でプラットフォームを「AnyCPU」から「x86」にすれば上記のことをほぼ自動でやってくれますので