1

ネイティブ C++ で DirectX アプリケーションを作成し、C++/CLI を使用して C# アプリケーションで IPC を容易にしています。

ただし、ソリューション全体の構築に関しては。可能な限り高いパフォーマンスを維持しながら、システムを x86 および x64 CPU アーキテクチャで動作させる方法について混乱しています。

私は、あらゆる種類のエミュレーション (WoW32/64 など) を警戒しています (そして避けたいと思っています)。

もちろん、AnyCPU を使用して C# プロジェクトをコンパイルできます。しかし、C++ の出力を何としてコンパイルすればよいのでしょうか?

2 つの別々のビルドをコンパイルするだけですか。1つはx86用で、もう1つはx64用ですか?

ありがとうございました

4

1 に答える 1

3

2 つの別々のビルドを行う必要があります。

AnyCPU は、マネージド コードが 32 ビット アーキテクチャでは 32 ビットとして実行され、64 ビット アーキテクチャでは 64 ビットとして実行されることを意味します (JIT が処理します)。ここを参照してください: Visual Studio の "Any CPU" ターゲットとはどういう意味ですか?

ただし、アンマネージ コードがあるため、32 ビット バージョン用に 2 つの個別の dll と、その 64 ビット用の 1 つが必要です。したがって、ロードするアン​​マネージ dll と実行時に使用するラッパーを選択して、それが実際にどのアーキテクチャであるかを検出しない限り (実際にできるかどうかはわかりません)、2 つの別々のビルドを作成する必要があります。

于 2013-08-11T17:39:33.257 に答える