以下は、最も単純な C++ プログラムです。
x64test.cpp
int main()
{
char * p = new char[0xffffffffff];
}
私の意図は、4G を超える大きなバッファーを割り当てることです。ネイティブの 64 ビット プロセスでは問題ないはずです。しかし、Visual Studio 2011 Beta は x64test.cpp のコンパイルを拒否し、"エラー C2148: 配列の合計サイズは 0x7ffffffff バイトを超えてはなりません" と報告します。
私はグーグルで検索し、 http://blogs.msdn.com/b/windowssdk/archive/2007/09/08/updated-windows-sdk-visual-c-cross-compilers.aspxで役立つ記事を見つけました
記事によると、ネイティブの 64 ビット コンパイラを使用して x64test.cpp をコンパイルする必要があります。ただし、Visual Studio は 32 ビット プロセスとしてのみ起動できるため、msbuild.exe と cl.exe は常に 32 ビット プロセスとして実行されます。
ソリューション プラットフォームを x64 に構成しようとしましたが、効果がありません。
いわゆるネイティブ 64 ビット コンパイラを使用して、次の手順で x64test.cpp を正常にコンパイルしました。
1、cmd.exe を管理者として起動します。
2、cd C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64;
3、cl x64test.cpp
私の質問は:
Visual Studio IDE でネイティブ 64 ビット コンパイラを有効にする方法はありますか?