我有Visual Studio 2012更新4和Windows SDK 7.1。Visual Studio 2012編譯爲XP - 無效的win32 - v110_xp
我選擇「Visual Studio 2012 - Windows XP(v110_xp)」工具包,並將include目錄更改爲使用$(WindowsSdkDir_71A)。
編譯期間沒有錯誤(例如,它成功找到winres.h),但是當我嘗試在Windows XP SP3上運行該exe時,它仍然錯誤:「test.exe不是有效的Win32應用程序。
對於測試,它只是一個C++ hello世界。
#include <cstdio>
int main(void)
{
printf("Hello, World!\r\n");
return 0;
}
如何使用Visual Studio 2012編譯XP?
我該如何檢查才能正常工作?
如何在命令行上測試編譯? 我目前正在測試這一命令行,仍然給出了無效的Win32錯誤的:
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cl.exe" /EHsc /MT /I"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include" /I"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include" main.cpp /link /LIBPATH:"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib" /LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib"
更新: 它的工作原理,如果我使用這些指令的命令行: http://blogs.msdn.com/b/vcblog/archive/2012/10/08/10357555.aspx
如果我把這些設置放到我的系統環境變量中,我也可以讓msbuild和visual studio編譯成功,但這並不理想。
您是否在您的XP系統上安裝了MS VS Distribuable? – enedil
有很少的方法可能會出錯,你可能只是複製了錯誤的EXE。項目+屬性,鏈接器,系統,最低要求版本是重要的設置。對於XP,必須是5.01。 –
最低要求的版本是5.01。 XP上沒有可再發行組件,但它是靜態鏈接的(/ MT),它在Visual Studio 2010上運行。它也沒有給丟失的DLL錯誤,它給一個無效的Win32應用程序錯誤。 –