使用MSVC 2010为Windows XP创建真正的独立应用程序?

时间:2010-05-10 14:40:27

标签: c++ visual-c++

我有一个C ++应用程序只使用基本的Win32 API(如果需要,我也可以删除它)和C ++ STL。我正在使用MSVC,并希望它真的是独立的。我已经尝试了几个选项(包括使用“多线程”选项而不是“多线程DLL”)。

然而:它错过了许多计算机上的几个MSVC运行时DLL,包括我学校的计算机。

  • 如何创建能够在Windows XP上运行的C ++应用程序(如果可能的话,可以更低/更高),而不需要任何特定的DLL版本,只能安装Service Pack和运行时DLL?

我必须切换到G ++吗?

我的要求不是那么大..只是一个小的可执行文件,大小为35KB,包含一些循环和一些ifs。

2 个答案:

答案 0 :(得分:4)

好吧,您已经找到了需要更改的选项。在“解决方案资源管理器”窗口中,右键单击项目,属性,C / C ++,代码生成,运行时库= / MTd。生成的EXE仅依赖于kernel32.dll,Windows。

不要忘记为Release版本配置执行此操作。现在选择/ MT。

答案 1 :(得分:3)

如果对所使用的库使用静态链接,则不需要任何DLL。你确定你没有使用MFC或ATL DLL或什么?将运行时库设置为“多线程”而不是“多线程DLL”应该为CRT提供技巧并删除对MSVCRT DLL的任何依赖。一般属性中应该有类似的设置,例如“使用标准窗口标题”。

如果您使用的是Visual Studio 2010,则CRT需要Windows XP SP2或更高版本(因此RTM或SP1不起作用)。如果您需要在XP SP2之前进行目标,则可能需要返回到Visual Studio 2008。