如何在没有C ++可再发行支持的Windows XP中运行MFC应用程序

时间:2013-02-15 07:16:37

标签: windows visual-studio visual-c++

我的开发环境

  1. C ++
  2. Visual Studio 2008
  3. Windows 7

    我将启动一个项目(MFC应用程序),最终结果(exe)应该在windows xp,vista,windows 7或windows 8上运行,而无需安装任何额外的软件包(如Visual C ++ Redistributable软件包)。

  4. 问题:

    1. 我应该在visual studio中选择哪种项目?
    2. 我应该指定哪些项目设置?

3 个答案:

答案 0 :(得分:1)

您必须将MFC用作静态库。请注意项目创建向导中的此选项。

答案 1 :(得分:1)

这些是在Visual Studio中启动需要在目标计算机上运行而不安装任何其他重新分发组件的项目时必须考虑的基本事项。

  1. 您必须选择项目类型Win32-> Win32 Console ApplicationWin32-> Win32 Project作为控制台或GUI要求。
  2. 您必须在No Common Language Runtime support
  3. 中选择right click project in solution explorer -> Properties -> General -> Common Language Runtime support
  4. 您的应用程序需要在目标计算机上运行运行时程序集。在目标计算机中部署运行时DLL有两种方法

    • 程序集静态链接(right click project in solution explorer -> Properties -> General -> Use of MFC and Use of ATL)。但如果您的应用程序与多个DLL EXE和LIB结合使用,则此方法非常麻烦。

    • 将目标计算机中的运行时DLL部署为私有程序集(我个人推荐此方法)。更多详情here

答案 2 :(得分:0)

扩展已经说过的话。

您需要将项目设置为要构建为静态库:

  1. 右键单击项目
  2. 转到“属性->配置属性->常规->项目默认设置->使用MFC” 设置为“在静态库中使用MFC”

如果正在使用它,您可能还需要关闭countries.OrderBy(x => x.ISOCode == "US").ThenBy(x => x.CountryName) 标志,并将其换成'/ MT':

  1. 右键单击项目
  2. 转到“属性->配置属性-> C / C ++->代码生成->运行时库” 设置为“多线程/ MT”