0

コンパイル済みプログラムで実行時エラーが発生するという問題があります。これは開発環境 (x86) では正常に機能しますが、運用環境 (x64) では機能しません。

この記事を見つけました。これは、ソフトウェアを任意の CPU としてコンパイルすると、64 ビット環境で実行されている場合、ソフトウェアが x64 ソフトウェアとして実行される可能性があることを暗示しているようです。

これは事実ですか? もしそうなら、ソフトウェアは任意の CPU でコンパイルされるべきですか?

4

1 に答える 1

2

AnyCPU は、マネージド コードのみを使用している場合に最適です。マネージ コードは、32 ビット プロセスまたは 64 ビット プロセスで実行できます。AnyCPU では、フレームワークが OS 固有のビット数を選択します。

アンマネージ コードについては、同じことは当てはまりません。32 ビットまたは 64 ビット コードとしてコンパイルする必要があります。もちろん、WoW64 サブシステムにより、64 ビット Windows は 64 ビット プロセスを実行できます。

ただし、64 ビット プロセスは 32 ビット モジュール (DLL、OCX など) をロードできません。

つまり、プログラムが何らかの種類のアンマネージ モジュールを使用している場合は、ビット数を手動で設定して、すべてのコンポーネントが同じビット数になるようにしてください。

于 2011-02-25T15:06:41.483 に答える