私はC#を使用しています。Visual Studio 2010または2012でソリューションを作成すると、デフォルト構成のデバッグ/リリースとプラットフォーム「任意のCPU」が得られます。32ビットまたは64ビットのアプリケーションを作成していますか?
3 に答える
「任意の CPU」とは、まさに「任意の CPU」という意味です。
OSのネイティブビットとして動作します。
をチェックするPrefer 32-bit
と、x86-64 プラットフォームで x86 として実行されます。
(ただし、ARM として実行することはできます)
32 ビットまたは 64 ビットのコンテキストで、32 ビットまたは 64 ビットのマシンで実行される .Net 実行可能ファイルを作成しています。管理されていないリソースを使用している場合、これは実際にはかなり重要です!
たとえば、AnyCPU 用にコンパイルしていて 32 ビット DLL を使用している場合、アプリケーションは 64 ビット マシンでクラッシュします。
構成のプラットフォーム設定は、実際には C# プロジェクトのプラットフォームを選択しないことに注意してください。この混乱は、設定が重要な IDE である Visual Studio に C++ が統合されていることに起因します。
関連する設定は、プロジェクト プロパティによって制御されます。プロジェクト + プロパティ、ビルド タブ、プラットフォーム ターゲット コンボボックス。VS2010 プロジェクトのデフォルトは x86 で、VS2012 プロジェクトでは「32 ビットを優先」オプションが選択されています。AnyCPU を選択し、EXE プロジェクトの 32 ビット優先オプションのチェックを外して、64 ビット プロセスを取得できます。つまり、この設定は、構成のプラットフォーム設定と必ずしも一致しないということです。これにより、多大な混乱が生じました。