意外に実験したことが無く、結構即答で答えられない質問だったのでしらべてみました。 64bit用に対象アーキテクチャをx64としてビルドされた.NETのアプリケーションから、32bit用、即ちx86用としてビルドされたアセンブリを参照して実際に動かせるのか?という実験。 サンプルプログラム 以下の構成で簡単なサンプルをVisual Studio 2010のVB.NETで作成しました。 親EXEを作成。フォーム1つ、DLLから文字列をもらってラベルに表示。 文字列をPublic Sharedで公開しているだけのDLL。 上記DLLはプロジェクト参照でEXEプロジェクトから参照される。 このプログラムで、EXEとDLLそれぞれの「ターゲットCPU」を切り替えて動作を見てみます。 結果 こんな感じ。 呼び出し側(EXE側) 呼ばれる側(DLL) ビルド 64bit OSでの動作 x86 x86 成
![64bitアプリと32bit DLLの混在 - misc.log](https://cdn-ak-scissors.b.st-hatena.com/image/square/fe4dd3c7354e93e1d2b1fcd1acf41a1fc1b618dd/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Ff%2Ffrontline%2F20130704%2F20130704155144.gif)