5

多くの異なるライブラリで構成される大規模なソリューションがあります。64ビットシステムでの開発に移行したばかりです。これにより、ソリューション内の個々のプロジェクトごとに指定する必要があるプラットフォームターゲットについて考える必要があります。

現在、32ビットDLLファイルを参照するライブラリプロジェクトは1つだけです。このDLLファイルの相互運用機能を参照しますが、ソリューション内の残りのプロジェクトを「任意のCPU」のままにして、このプロジェクトのプラットフォームとしてx86をターゲットにすると、エラーが発生します。

私の質問は、32ビット相互運用機能を参照するものを除くすべてのプロジェクトで任意のCPUをターゲットにできるかどうかです。または、x86用にすべてをビルドする必要があります。これはエラーなしで機能するようです。

4

2 に答える 2

3

はい。

1つを除くすべてのDLLをAnyCPUにすることができます。

プロセスをx86にすることを忘れないでください。そうすれば、すべてのDLLが32ビットとしてロードされます。

あなたが得ているエラーは何ですか?エラーメッセージを追加すると、より役立つ回答が得られる可能性があります。

于 2010-11-04T02:21:30.847 に答える
1

すべてのdllがanyCpuの場合、.exeはx64またはx86のいずれかになります。ただし、exeがx64またはx86のいずれかである場合、.dllを他の.dllにすることはできません。さらに、.exeがAnyCPUの場合、マシンにネイティブなモードでロードされると思います。つまり、dllはanyCpuまたはシステムのネイティブモードのいずれかでした。

于 2010-11-04T02:19:08.407 に答える