読者です 読者をやめる 読者になる 読者になる

「Any CPU」指定時の動作

ネィティブアプリケーションの場合、プラットフォームの異なるExeとDllは共存できません。
・x64のExeと x64のDLL ⇒動作する
・x86のExeと x86のDLL ⇒動作する
・x64のExeと x86のDLL ⇒動作しない
・x86のExeと x64のDLL ⇒動作しない
ネイティブアプリケーションはビルド時に、どちらにするか指定してビルドする必要があります。
.NET の場合、ビルド時にプラットフォームに"x86","x64"以外に"Any CPU"が選択できます。
Any CPUを選択した場合次のような挙動になります。
・Exeの場合、OSが32ビットの場合、32ビットのプロセスとして動作します。
・Exeの場合、OSが64ビットの場合、64ビットのプロセスとして動作します。
・DLLの場合、呼び出したExeが32ビットで動作している場合、32ビットで動作します。
・DLLの場合、呼び出したExeが64ビットで動作している場合、64ビットで動作します。
Any CPUでExeを作成した場合、64bitOSで32bitプロセスを動作させることは出来ません。

ネタ元