使用VC2008创建一个“Win32-Win32项目”和一个“MFC-MFC应用程序”,什么都不写,直接Debug/Release编译,在本机(XP)装了VC2008的可以运行,但是复制到其他XP的机器上就无法运行
VC2008制作出的程序要在其他机器上运行,还必须要自带一堆DLL或者安装程序?
不能像Delphi7那样编译一个Exe文件就到WinXP机器上裸奔?

解决方案 »

  1.   

    两种情况:1.VS2008可以写托管和非托管两种C++程序,托管的生成IL代码,运行需要.Net Framework支持,非托管不用.Net Framework运行环境;
    2.即使是非托管的程序,如果选择了MFC库,而在目标机子上没有相应的MFC版本,也是不能运行的。关于MFC的版本,请参考MSDN。
      

  2.   

    w32程序应该能直接运行,MFC程序不论是VS2008还是以前的VC6都是要MFC DLL支持才能运行的。
      

  3.   

    我刚刚又创建了一个新的“Visual C++ -> Win32 -> Win32项目 ”,还是什么都不修改,直接Release编译,编译出的Exe文件为56K大小,放到其他XP机器上还是运行不了,提示“程序配置不正确”
      

  4.   

    MFC工程里头选择静态链接就可以了。
      

  5.   

    Release加静态链接,体积不大而且可以单个文件运行。
      

  6.   

    Release加静态链接,体积不大而且可以单个文件运行。不需要.net支持。
      

  7.   

    一般不建议静态链接,都是做安装包,把MFC8相关的DLL一起打包的,还要.NetFrameWork。还有一个.manifest文件貌似也要一起发布的。
      

  8.   

    呵呵,刚开始用VS2008吧,很遗憾,楼上各位回答的没有正确的解决方案。
    funnymfc,只说对了一点,但是楼主还问了Win32的“裸奔”问题,而Win32非控制台项目,跟MFC是基本粘不着边的,所以静态链接MFC,是不能解决Win程序的“裸奔”问题的。
    到我的博客里来吧,这里有你需要的答案:
    http://hi.baidu.com/ligh0721/blog/item/301fc760a08eb24ceaf8f866.html
    如果还有问题,可以QQ联系。
      

  9.   

    需要在对方机器上部署vc2008的运行时,也就是动态库你可以通过vs2008 新建一个发布项目 把你的程序做成安装包,然后勾上vc运行时,然后在对方机器上安装就可以了。
      

  10.   

    如果你其他什么都没有写!win32程序需要将运行时库设置成静态
    具体操作:项目 -> 属性 -> C/C++ -> 代码生成 -> 运行时库 -> 多线程(/MT)MFC 程序需要静态链接 MFC
    具体操作:项目 -> 属性 -> 常规 -> MFC的使用 -> 在静态库中使用 MFC
      

  11.   

    方法1:
    静态链接mfc和c运行库方法2:
    vc安装目录下找到一个放着mfc等dll的x86发布目录,把需要的全copy过去就可以了
      

  12.   


    这样改之后出现了这个错误
    D:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\afxver_.h(81) : fatal error C1189: #error :  Please use the /MD switch for _AFXDLL builds
      

  13.   

    D:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\afxver_.h(81) : fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
    同样的问题,这个如何解决