[英]xxxxxx.exe is not a valid Win32 application
我在Visual Studio 2012 RC中有一個小的C / C ++項目
此應用程序解析argv,然后使用ShellExecute
調用另一個.exe文件
我的應用程序在Windows7上運行完美,但在Windows XP x86 trhows上不是有效的Win32應用程序錯誤。
我用Mutli-thread(/ MT)和Win32 Platform編譯了它
這是我的#includes
#include <string>
#include <iostream>
#include <Windows.h>
#include <fstream>
#include <cstdio>
#include <vector>
#include <windowsx.h>
#include <shlobj.h>
#include <stdio.h>
#include <tchar.h>
#include <direct.h>
謝謝
這是2013年2月,我現在可以通過設置以下目標來定位VS2012中的XP:
項目屬性 - >常規 - >平台工具集 :
Visual Studio 2012 - Windows XP(v110_xp)
您必須使用您的應用程序重新分發msvcp110.dll庫等,可在此處找到: "<Program Files>\\Microsoft Visual Studio 11.0\\VC\\redist\\x86\\Microsoft.VC110.CRT\\"
2015年8月使用Visual Studio 2015更新
現在似乎有很多選擇。 我能夠使用Visual Studio 2015 - Windows XP(v140_xp)設置在VS2015中編譯應用程序。 為了讓它實際上在Win XP上運行,我必須部署(與應用程序一起復制) msvcr100.dll用於Release版本, msvcr110.dll和msvcr100d.dll用於Debug版本(注意數字100和110有區別,還有調試庫msvcr100d .dll可能不是可再發行的)
雖然seleted的答案是在不久前,然后noelicus給出了關於v110_xp平台工具集的正確更新,但還有一個問題可能產生這種行為。
mahesh在他的評論中已經發布了關於問題的說明,我想強調這一點,因為我花了幾天時間掙扎然后自己找到它。
因此,如果你在“配置屬性 - >鏈接器 - >系統 - >子系統”中有一個空白,你仍然會在XP和Win2003上得到“無效的Win32應用程序”錯誤,而在Win7上它沒有這個惱人的錯誤。 一旦我放下子系統:控制台,錯誤就消失了。
至少有兩種解決方案:
對我來說,這有助於:1。配置屬性/常規/平台工具集= Windows XP(V110_xp)2。C / C ++預處理器定義,添加“WIN32”3。鏈接器/系統/最低要求版本= 5.01
在運行使用靜態版本Qt 5.7.0 (MSVC 2013)構建的應用程序時,我在Windows XP上遇到了同樣的問題。
將以下行添加到項目的.pro文件中解決了它:
QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS,5.01
我相信如果您的項目針對的是未部署到您正在部署的服務器上的框架版本,則也會拋出此錯誤。
我在PowerShell中啟動VS2013 32位控制台應用程序時遇到此問題,在cmd中啟動它並沒有發出此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.