30

どの VS プロジェクトでも、そのプロジェクトのビルド プロパティでプラットフォーム ターゲットを設定できます。これは、任意の CPU、x86、x64、または Itanium に設定できます。私の質問は、この値を x86 に設定すると、そのプロジェクトを x64 マシンで実行できないということですか? もしそうなら、なぜこれが使われているのですか?常にAny CPUを使用する方が良いのではないですか?

4

2 に答える 2

49

この値を x86 に設定すると、そのプロジェクトを x64 マシンで実行できないということですか?

いいえ、32 ビット アプリケーション (x86) は 64 ビット Windows (x64) で問題なく動作します。すべての 64 ビット バージョンの Windows には、Windows on Windows 64 (WOW64) と呼ばれる 32 ビット互換レイヤーが含まれています。実際、ほとんどのアプリケーションは 64 ビットに準拠してもメリットがないため、通常はこれが必要です。

ただし、64 ビット (x64) 用にコンパイルすると、アプリは 32​​ ビット (x86) コンピューターでは実行されません後方に進むことはできますが(64 ビットは 32 ビットを実行できます)、前方に進むことはできません(32 ビットは 64 ビットを実行できません)。

Any CPUあなたが指摘するように、コンパイルは常にオプションです。これにより、アプリケーションを 32 ビット マシンでは 32 ビット アプリケーション (x86) として、64 ビット マシンでは 64 ビット アプリケーション (x64) として実行できます。これは万能薬のように聞こえますが、コストがかかります。特に、 32 ビット環境と 64 ビット環境の両方でアプリケーションを広範囲にテストする必要がありますが、32 ビット環境 (64 ビット ホスト上の 32 ビット環境を含む) のみを対象とする場合は、 1 つのビルドをテストします。ほとんどのビジネス アプリケーションは 64 ビット環境の余分なメモリ スペースの恩恵を受けず、おそらく 64 ビット ポインターのオーバーヘッドの増加によって潜在的な利益を台無しにしてしまいます。

Visual Studio 自体は、完全に 32 ビットのアプリケーションの良い例です。64 ビット バージョンはありませんが、64 ビット ホストで問題なく動作します。このブログ投稿は、VS 32 ビットを維持するという決定が下された理由を明らかにするのに役立ちます。理由付けは、自分で決定を下すのに役立つ場合があります。

同様に、Microsoft Office は現在 64 ビット パッケージで入手できますが、Microsoft は依然としてほとんどの顧客に 32 ビット バージョンを使用することを推奨しています。64 ビット バージョンには互換性の問題があり、あまりメリットがありません。

于 2012-05-10T14:05:28.920 に答える