VC编译后文件大小问题集锦??

lunar2008 2008-04-22 09:03:48
我是个还没飞过一次的超级菜鸟,我对VC编译后文件大小几种疑惑,麻烦哪位小鸟以上级别的帮小弟解释下。
VC编译一般有两种编译,release和Debug(我记不住单词大家明白意思就好),其中在编译时网上公认提到:选择MFC动态链接DLL(即共享DLL),这样生成出来的是最小的,的确是最小的,而且也能执行,不过有个要命的前提,只能在开发机器上,普通机器我还没遇到能执行的。原因:因为普通机器上缺少什么dll文件,而我们编译的程序里只掉用了系统API,照理说应该放到system32目录下就能全部动态链接上的,可是还是缺少什么MS80什么的dll或ATL80什么。有这么一个假设,假设我要编一个.exe文件,只执行输出框“大家好”这三个字,如果要用release的选择MFC动态链接DLL(即共享DLL),可能生成只有几k大小,很好,可是这个程序是不可能在普通机器上执行的,有一种方法可以就是把他缺的MS80和ATL80什么的dll一起放到普通机上,你想想,就是说说一句"大家好",在普通机器上至少要用100K以上的执行文件才能正确执行吧!我想问的是,几K的单个文件是怎么做出来的呢,不是用VC么?
还有用来编写邮件后台发送的程序,只有几句话为什么要用最少160K的大小呢,难道邮件发送程序所调用的dll都很多很大么
...全文
221 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lunar2008 2008-04-23
O了,结贴吧,发分了,10楼的朋友你的aspack可以发给我一个么,邮箱是:
lunar2000@126.com
回复
DDGG 2008-04-22
aspack是个exe文件压缩工具,减小文件体积并且不影响使用,试试吧。
回复
fanofvc 2008-04-22
有个简单的办法,用dependency walker察看你的导入库,需要什么dll就把dll文件打包安装。或者用upx、aspack加壳。
回复
gebifangjian 2008-04-22
其实MFC类库就是微软把一大堆的SDK的API进行了封装,从而可以使开发者更方便的应用MFC提供的类库进行开发.
回复
wr154 2008-04-22
应该是可以实现的 只不过mfc封装的更好些 用起来比较方便
回复
lunar2008 2008-04-22
2楼说的很明白了!再收到几个留言分给你!还想问下MFC能实现的功能API是不是基本也都能实现呢
回复
菜牛 2008-04-22
你用了MFC,就必须用到MFC的运行时库。不同操作系统带的运行时库版本是不同的,XP带了MFC 7.1的运行时库。也就是说,要减少可执行文件体积,最好的方法是不用MFC库,直接用SDK函数编程。SDK编程所需要的动态库,是操作系统带的,个别SDK函数有版本要求。MFC库本身是为比较大型的软件设计的,对于一个大型软件来说,文件大小不是问题。
回复
N_star 2008-04-22
up,关注中...............
回复
菜牛 2008-04-22
[Quote=引用 3 楼 lunar2008 的回复:]
2楼说的很明白了!再收到几个留言分给你!还想问下MFC能实现的功能API是不是基本也都能实现呢
[/Quote]

应该反过来问:API能实现的功能MFC是不是基本也都能实现呢?因为API范围比MFC大多了。MFC仅包括基本的Windows API功能,一般都够用了。
回复
DDGG 2008-04-22
我怎么没问题的啊?
我的一个VC6写的工具程序被我用Aspack从564K压到98K,用PECompact压到86.5k,试了都可以正常运行。

我用的Aspack版本: 2.12r汉化版
PECompact版本: 2.50
回复
DDGG 2008-04-22
[Quote=引用 8 楼 lunar2008 的回复:]
我试了,当时兴奋坏了413K压到178K,结果一运行,不是有效的win32应用程序...
[/Quote]

。。。。
那试试 PECompact 呢?
回复
lunar2008 2008-04-22
[Quote=引用 7 楼 DDGG 的回复:]
aspack是个exe文件压缩工具,减小文件体积并且不影响使用,试试吧。
[/Quote]

我试了,当时兴奋坏了413K压到178K,结果一运行,不是有效的win32应用程序...
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2008-04-22 09:03
社区公告

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