1

Google は、32 ビット OS では 32 ビットとして、64 ビット OS では 64 ビットとして実行される単一の実行可能ファイルにコードをコンパイルできるという手がかりを与えてくれました。実行可能ファイルが実行時にビット数を決定することは本当に可能ですか?

私の場合、ターゲット システムはWindows 7 Professional x64Windows XP SP3 x86です。

Soltuionしたがって、さまざまな記事で読んだこと(SOに関する同様のトピックへの回答さえあったと思います)は、Configuration ManagerRMB on Solution -> Configuration Manager)に移動し、 Any CPUPlatformに設定する必要があるということです。

Configuration Manager現在、これらの記事はすべて、古い MSVS または MSVC++ バージョンのセットアップについて説明していますが、2013 RC バージョン (最近インストールしたばかり) には大きな変更はないと思います。

ドロップダウンにはActive Solutionオプションがないので、SOで見つけたこのレシピAny CPUに従いました。私の場合、この小さなガイドに従うことは失敗します。ステップ 5 に従うときに選択するオプションがまだありません。Any CPU

  • 5) [新しいプラットフォーム] で [任意の CPU] が選択されていることを確認します。手順 3 で Any CPU ソリューション プラットフォームがなかった場合は、[新しいソリューション プラットフォームの作成] チェックボックスがオンになっていることを確認します。次に、[OK] をクリックします。

私が利用できるドロップダウン項目はx64ARM(Win32これもデフォルトで追加されています) で、選択できませんAny CPU

ターゲット プラットフォームの追加とx64実行可能ファイルのコンパイルは正常に機能します。プログラムは Windows 7 x64 で 64 ビットとして実行されますが、もちろん 32 ビット Windows XP マシンでは実行できません。

Microsoft Visual Studio Professional 2013 RCAny CPUでターゲット プラットフォームを設定するにはどうすればよいですか?

4

5 に答える 5

2

おそらく正しい答えではありませんが、ほとんどの場合、64 ビット システムで 32 ビット コードを実行することは問題なく動作します。もちろん、実行速度は少し遅くなる可能性がありますが、2 つの異なるバイナリを処理する (そして徹底的にテストする) 必要がある場合と比較すると、64 ビット モードでパフォーマンスが大幅に向上する場合 (または、アプリケーションが約 2GB を超えるメモリ領域を使用する場合) は除きます。 32ビットモードを使用したくなるでしょう。

于 2013-09-16T16:08:06.530 に答える
1

MacOS は、プログラムが 2 回コンパイルされ、両方のバージョンが 1 つのファイルにパックされる「ファット バイナリ」と呼ばれるものをサポートします。OS は、実際に起動するバージョンを決定します。

Windowsにはそのようなものはありません。

于 2013-09-16T15:53:24.273 に答える