CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

vc++6.0初学者的问题,请各位指点。

楼主cdc(才东才)2000-10-03 11:01:00 在 VC/MFC / 基础类 提问

听说c做的exe可以单独发布,我就用vc++6.0向导  
  做了一个,并没有写一句语句,生成的exe在我的  
  机上可以运行,可是在别人的机上运行时却提示  
  缺dll。能告诉我为什么吗?我该学什么?怎么着  
  才能使做的exe可以单独发布?  
  问题点数:50、回复次数:21Top

1 楼Holly()回复于 2000-10-03 11:46:00 得分 0

press   Alt+F7,  
  then   switch   to   General   tab,  
  Change   Microsoft   Foundation   Classes:item   to   Use   MFC   in   a   static   library!  
  OK!  
  Top

2 楼ddddh(叶君临)回复于 2000-10-03 12:59:00 得分 10

选择静态连接就可以了。因为动态时需要mfc的dll,不过在98下面,好像操作系统是自己带了的Top

3 楼wvc()回复于 2000-10-04 14:11:00 得分 0

不要选择debug你选择release就可以了.   Top

4 楼wvc()回复于 2000-10-04 14:14:00 得分 0

在编译时不要选择debug你选择release就可以了.   Top

5 楼cdc(才东才)回复于 2000-10-04 18:55:00 得分 0

先谢谢各位  
  能不能说说原理呢?  
  Top

6 楼susanll(晴天公仔)回复于 2000-10-04 20:58:00 得分 0

请大家多多指教啊~~~~~~~~~~~~~``Top

7 楼Drate(小虫(好好学习,天天向上))回复于 2000-10-04 21:24:00 得分 10

因为微软的项目中默认的程序链接方式是用动态链接库(DLL)这样, 可以节省程序运行时的内存空间,因为用DLL就节省了用到如MFC**.DLL不用在内存同时存在多个备份如果用了静态库的话,所有在程序中用到的资源都会以编译时加入到你的程序中来,这样你的程序会变得好大,而且不容易在以后的程序中进行软件维护  
  如果想要知道更详细的内容的话可以发E_MAIL给我  
  能不能给我加分呢?  
   
  Top

8 楼kenvin(小心,有地雷)回复于 2000-10-04 22:45:00 得分 10

在主菜单的project下,选择setting,在foundation项选择   Use   MFC   in   a   static   library!  
  然后,重新编译,运行即可  
  Top

9 楼nemo2050(朝闻道,夕死可矣。)回复于 2000-10-04 23:30:00 得分 0

你可以各选择静态连接和动态连接试着编译一下,然后对比一下它们俩的长度,看看有什么不同?Top

10 楼sxbyl(sxbyl)回复于 2000-10-05 18:54:00 得分 10

Holly提供的方法是最简单的,但这样做出来的程序比较大。因为用MFC建立的程序要用到很多由MFC封装的类,这些功能在MFC42.DLL等几个动态库中(如果是Debug版,则在MFC42D.DLL等几个文件中),至于用到哪些动态库,你可以用VC提供的Depends工具察看,也可以在程序运行时在Debug输出栏察看。Holly提供的方法是将这些本来放在动态库中的内容连入执行文件中,以后自然不再需要那些动态库了。如果你不用静态库,可以将需要的那两个动态库(一般来说对于发行版就是MFC42.DLL和MSVCRT.DLL)单独拷出来,就没问题了。还有一种方法是制作安装文件。  
        以上说的动态库专指由MFC提供的DLL。Top

11 楼boodweb(TTT)回复于 2000-10-06 02:50:00 得分 0

mfc42.dll有两个版本debug,release  
  debug用的是mfc42d.dll  
  而一般win98里只有mfc42.dll,是release版本的Top

12 楼cdc(才东才)回复于 2000-10-06 21:15:00 得分 0

再次谢谢各位   :   )  
  我给分是很慷慨的,不信可看我已获解答的25428  
  和29096,请各位再一次忙。  
  如果不把动态库连入exe,是不是发布包中没有MFC*.dll  
  ,exe就不能运行了呢?  
  也就是说因为VC++6.0用了MFC,就实现不了我的愿望:  
  发布一个小巧的绿色exe?  
  如果是这样的话,就只能用API了?Top

13 楼boodweb(TTT)回复于 2000-10-06 21:28:00 得分 0

这倒不一定,微软已经在98中放入了mfc42.dll等几个dll  
  所以没有这个问题,但是在95里恐怕就要象你说的那样了Top

14 楼boodweb(TTT)回复于 2000-10-06 21:30:00 得分 10

这倒不一定,微软已经在98中放入了mfc42.dll等几个dll  
  所以没有这个问题,但是在95里恐怕就要象你说的那样了  
   
  嘿嘿,居然用分数来勾引我,不过要注意不是谁都吃这一套  
  的哦,技术交流最重要Top

相关问题

  • 请问各位,如何才能学好VC,各位给个指点。
  • 小弟初来乍到,准备学习vc,还请各位高手指点!!!!!!!!!
  • 一个难以解决的VC++编程问题,请各位高手指点
  • 各位高手,请指点!
  • 请各位大侠指点
  • 请各位大虾指点!!!
  • 请各位大虾指点
  • 请各位指点!!!!!SOS
  • 请各位高手指点!
  • 请各位指点迷津!!

关键词

  • vc++
  • 动态库
  • mfc
  • dll
  • 编译
  • 选择
  • vc
  • 文件
  • 连接
  • debug

得分解答快速导航

  • 帖主:cdc
  • ddddh
  • Drate
  • kenvin
  • sxbyl
  • boodweb

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo