Ниже представлена простейшая программа на С++:
x64test.cpp
int main()
{
char * p = new char[0xffffffffff];
}
Мое намерение состоит в том, чтобы выделить большой буфер больше 4G. В собственном 64-битном процессе это должно быть ОК; но Visual Studio 2011 Beta отказывается компилировать x64test.cpp и resports: "ошибка C2148: общий размер массива не должен превышать 0x7fffffff байтов".
У меня есть googled и нашел полезную статью в 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
Мой вопрос:
Есть ли способ включить собственный 64-разрядный компилятор в среде Visual Studio IDE?