为什么用MFC开发的程序在没有安装VC的系统上不能运行?

来源:互联网 发布:w7我的网络图标 编辑:程序博客网 时间:2024/04/30 04:28

原文地址:http://hi.baidu.com/honfei/item/0d8a250a04512bce74cd3cab


原因:编译时选择不讲LIB链接进去的选项。好处是程序体较小,不好的就是一些基本dll找不 到。 

打包的dll根据程序不同是不一样的。当然,可以根据规律,多打包一些dll进去。 

打包的办法:寻找一台仅安装 了windows的“裸机”,运行编译好的程序,系统将提示缺少····dll。将提示的dll拷贝到“裸机”并在其他目录下归档。反复上述操作可以获得 完整的dll包。 

记得玩VC6的时候有人做过vc6的dll包的,上网寻找一下,说不定有收获。 


补充一篇参 考文章: 

目前 硬件配置在提高,软件开发环境也在不停的升级,vs2008 beta2 Enterprise Edition已经发布,使用的结果感觉非常满意,比vs2005进步不少,首先在IDE环境的启动速度上比05要快,MFC的空间数量上也增加了几个, 最重要的是vs2008应该是windows vista内核开发的主要工具,微软的东西向下兼容肯定是没有问题了,如果能够熟练使用vs2005那么vs2008应该一点问题都没有的,下面说下 vs2005、vs2008程序发布的方法: 

alt+F7->配置属性->C/C++->Code Generation->Runtime Library 属性一般在发布的时候要进行静态发布,因为目前的操作系统正在换代,平台比较多,所以debug:Multi-threaded Debug(MTd)、release:Multi-threaded(MT),当然如果工程里边需要依赖很多的dll,每个dll又不一定是静态发布, 尤其是MFC extension DLL,必须为动态发布这时工程里肯定要包含MFC的运行库,所以这好似所有的工程就可以采用动态运行库的方法,debug:Multi- threaded Debug DLL(MDd)、release:Multi-threaded DLL(MD),这时可以采用共享MFC库的方式即alt+F7->配置属性->General->Project Defaults->Use of MFC->use mfc in a shared dll 
vs2005 
Debug 发行版 所依赖的库为:mfc80d.dll、Microsoft.VC80.DebugMFC.manifest、 Microsoft.VC80.DebugMFC.manifest、msvcm80d.dll、msvcp80d.dll、msvcr80d.dll 

Release 发布版 所依赖的库为:mfc80.dll、Microsoft.VC80.MFC.manifest、 Microsoft.VC80.MFC.manifest、msvcm80.dll、msvcp80.dll、msvcr80.dll 

vs2008 
Debug 发行版 所依赖的库为:mfc90d.dll、Microsoft.VC90.DebugMFC.manifest、 Microsoft.VC90.DebugMFC.manifest、msvcm90d.dll、msvcp90d.dll、msvcr90d.dll 

Release 发布版 所依赖的库为:mfc90.dll、Microsoft.VC90.MFC.manifest、 Microsoft.VC90.MFC.manifest、msvcm90.dll、msvcp90.dll、msvcr90.dll

0 0
原创粉丝点击