【发布时间】:2023-03-17 15:32:01
【问题描述】:
我正在运行 Windows 7 和 Visual Studio 2008 Pro,并试图让我的应用程序在 Windows XP SP3 上运行。
这是一个非常小的命令行程序,所以应该有任何可笑的依赖:
// XPBuild.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
printf("Hello world");
getchar();
return 0;
}
我在某处读到defining several constants such as WINVER 应该允许我为其他平台编译。我已经尝试将以下内容添加到我的 /D 编译器选项中:
;WINVER=0x0501;_WIN32_WINNT 0x0501;NTDDI_VERSION=NTDDI_WINXP
但这并没有什么不同。当我在我的 Windows XP 机器上运行它时(实际上是在 virtualbox 中运行),我收到以下错误:
此应用程序无法启动,因为应用程序配置不正确。重新安装应用程序可能会解决此问题。
那么我错过了什么?运行 MSVC 编译程序或不同的编译器选项或其他东西是否需要其他东西?
【问题讨论】:
-
不管怎样,最小的标准应用程序是
int main(){},如果你想试试的话。对于使用标准库的东西,可能是:#include <iostream> int main(){std::cout << std::endl;} -
是的,但我想要一些能吐出一些输出并在消失前暂停的东西。
-
不管怎样,最小的标准应用是 int main(){return 0;}
-
@gregschlom:
return 0;在 C99 和 C++ 中是可选的。
标签: c++ windows-7 windows-xp cross-platform compilation