怎么生成MFC可执行文件,就是像可以打包的小软件的形式

yanglh429 2012-08-28 05:10:13
怎么生成MFC可执行文件,拷到没有C++的电脑上也可以直接使用,并且,我想在电脑启动后直接调用MFc可执行文件,直接运行,进入工作界面 ,该怎么做
...全文
745 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanglh429 2012-09-04
  • 打赏
  • 举报
回复
已经解决,再次感谢大家
yanglh429 2012-09-03
  • 打赏
  • 举报
回复
谢谢大家的指导,我还有个问题,以前的程序里有access数据库,生成.exe文件后,数据库部分不能运行了,总是显示找不到文件。
还有,怎么拷贝dll文件
yanglh429 2012-09-03
  • 打赏
  • 举报
回复
谢谢大家的指导,我还有个问题,以前的程序里有access数据库,生成.exe文件后,数据库部分不能运行了,总是显示找不到文件。
还有,怎么拷贝dll文件
谭咏麟 2012-08-30
  • 打赏
  • 举报
回复
1楼正解
oyljerry 2012-08-29
  • 打赏
  • 举报
回复
静态编译MFC,/MT编译运行时库,然后进程放到Run key开机启动
凌枫 2012-08-29
  • 打赏
  • 举报
回复
在项目属性中选择“在静态库中使用MFC”,就是将所有依赖的DLL都打包到了Exe中,生成的程序有点大。

还有一种就是不作设置,但要将其依赖的MFC程序都找出来,放到Exe同一目录下面,拷到目标机器上面。
下面是各种开发环境依赖的MFC文件清单,可参考:
VC++6.0、VS2003、vs2005、vs2008程序依赖DLL:
VC++6.0:
mfc40.dll、mfc40u.dll、mfc42.dll、mfc42u.dll、MFC42D.DLL、MFCD42D.DLL、MFCO42D.DLL、MSVCP60D.DLL、MSVCRTD.DLL

VS2003:
MFC42D.DLL、mfc42loc.dll、mfc42u.dll、mfc70.dll、mfc71.dll、mfc71d.dll、MFCD42D.DLL、MFCO42D.DLL、MSVCP60D.DLL、msvcr71d.dll、MSVCRTD.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.DebugCRT.manifest、Microsoft.VC90.DebugMFC.manifest、msvcm90d.dll、msvcp90d.dll、msvcr90d.dll、MFC90UD.DLL
Release 发布版所依赖的库为:mfc90.dll、Microsoft.VC90.MFC.manifest、Microsoft.VC90.CRT.manifest、msvcm90.dll、msvcp90.dll、msvcr90.dll
凌枫 2012-08-29
  • 打赏
  • 举报
回复
使用“在静态库中使用MFC”的话,就是将依赖的DLL都打生成到了Exe中,这样拷到没有环境的机器上可以使用。
另外就是,不进行设置,生成Exe后,将其依赖的DLL都单独的拷出来,与生成的Exe放到一起,拷到目标机器上面也可以使用。不同的开发环境,依赖的MFC的DLL不一样,你要到系统目录下面去找出来,下面有一个清单,你可以根据你的开发环境,去找齐。
VC++6.0、VS2003、vs2005、vs2008程序依赖DLL:
VC++6.0:
mfc40.dll、mfc40u.dll、mfc42.dll、mfc42u.dll、MFC42D.DLL、MFCD42D.DLL、MFCO42D.DLL、MSVCP60D.DLL、MSVCRTD.DLL

VS2003:
MFC42D.DLL、mfc42loc.dll、mfc42u.dll、mfc70.dll、mfc71.dll、mfc71d.dll、MFCD42D.DLL、MFCO42D.DLL、MSVCP60D.DLL、msvcr71d.dll、MSVCRTD.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.DebugCRT.manifest、Microsoft.VC90.DebugMFC.manifest、msvcm90d.dll、msvcp90d.dll、msvcr90d.dll、MFC90UD.DLL
Release 发布版所依赖的库为:mfc90.dll、Microsoft.VC90.MFC.manifest、Microsoft.VC90.CRT.manifest、msvcm90.dll、msvcp90.dll、msvcr90.dll

VC++6.0和VS2003的没有时间进行区分Debug和Release的
youcry 2012-08-28
  • 打赏
  • 举报
回复
选release版本编译
并且在项目属性中选择“在静态库中使用MFC”
辰岡墨竹 2012-08-28
  • 打赏
  • 举报
回复
这个建议你用VC6.0~VC2003来开发程序,因为现在系统基本上都内置了这些版本的MFC库,你只要把你的程序以Release方式Build一下就可以了。在工程的Release文件夹里有可用的.exe文件。
注意如果你用了什么第三方的dll,要把那个dll放到.exe文件夹里,lib是静态编译,就不用了。
除非你是用VC2005以后的版本,才要考虑MFC静态编译,因为MFC静态编译会让程序变得很大(注意一定要用Release,不要选Debug,那样太大了),所以不推荐这样。
whucv 2012-08-28
  • 打赏
  • 举报
回复
正解[Quote=引用 1 楼 的回复:]
1、把工程改成静态编译或者把依赖的DLL一块拷过去
2、把你的工程写到注册表的开机启动项里

如果要打包的话,可以用installshield
[/Quote]
Gloveing 2012-08-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
1、把工程改成静态编译或者把依赖的DLL一块拷过去
2、把你的工程写到注册表的开机启动项里

如果要打包的话,可以用installshield
[/Quote]
2.把程序创建为系统服务
dickbarry 2012-08-28
  • 打赏
  • 举报
回复
1、把工程改成静态编译或者把依赖的DLL一块拷过去
2、把你的工程写到注册表的开机启动项里

如果要打包的话,可以用installshield

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧