簡體   English   中英

Visual Studio 2012編譯為XP - 無效的win32 - v110_xp

[英]Visual Studio 2012 compile for XP - not valid win32 - v110_xp

我有Visual Studio 2012更新4和Windows SDK 7.1。

我選擇“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成功編譯,但這並不理想。

需要更改的設置是Project Properties - > Configuration Properties - > Linker - > System - > SubSystem

這需要針對相應的項目類型設置為CONSOLE或WINDOWS,但默認情況下不為“空項目”設置,即使控制台與GUI設置在其他位置並且它似乎有效(例如WinMain是入口點,控制台)沒有出現等)。 最低要求版本也需要是5.01,但是通過link.exe上的命令行幫助來判斷,除非設置了子系統,否則我認為這不會做任何事情。

要檢查的事項:

  • Visual Studio 2012是Update 1或更高版本
  • 已安裝SDK 7.1並且存在7.1A
  • 使用“Visual Studio 2012 - Windows XP(v110_xp)”工具包
  • 預處理程序定義包含_USING_V110_SDK71_
  • VC ++目錄包含$(WindowsSdkDir_71A)bin,$(WindowsSdkDir_71A)include和$(WindowsSdkDir_71A)lib
  • 鏈接器子系統是控制台或窗口,所需的最低版本為5.01

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM