减小VS2012生成的exe的文件大小的一种方法

Posted 失散糖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了减小VS2012生成的exe的文件大小的一种方法相关的知识,希望对你有一定的参考价值。

  在做让MCU程序显示自身CRC值的同时,也要做一个校验码软件,用来计算其CRC值。在用VS2012中的MFC制作这个小工具的时候,生成的文件非常大(3~4MB)。明明里面没啥大型的东西,怎么会占用那么多尺寸呢?

  用压缩软件打开生成的exe文件,发现里面嵌入了大量的png资源。


解决方法:

步骤1°

打开“stdafx.h”文件,找到

#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS      // 某些 CString 构造函数将是显式的

然后在这句话的后面添加下面这句话
#define _AFX_NO_MFC_CONTROLS_IN_DIALOGS         // 移除对话框中的 MFC 控件支持


步骤2°

打开“XXXDlg.h”文件(其中XXX是你的工程的名字),搜索CDialogEx,替换为CDialog;打开对应的cpp文件,做同样的批量替换。


步骤3°

经过以上两步,编译连接时会发生符号冲突。

打开“XXX.c”文件(其中XXX是你的工程的名字),搜索

   AfxEnableControlContainer();

删除从这开始,直到

   SetRegistryKey(_T("应用程序向导生成的本地应用程序"));

的部分。


找到并删除如下代码: if (pShellManager != NULL)

delete pShellManager;


步骤4°
重新编译

OK。文件尺寸只剩几百KB了。

__________________________________

PS:

之前写的内置CRC到hex文件中的方法,发现该方法同样适用于JLink算的CRC。。。说明都是类似的CRC算法。。。



以上是关于减小VS2012生成的exe的文件大小的一种方法的主要内容,如果未能解决你的问题,请参考以下文章

减小 pyinstaller exe 的大小

关于VS2010 VB.NET 生成.exe 文件方法

VS2010 c++编译的时候总是出现找不到exe文件、这是个啥情况

VS2012调试出错,在debug目录下找不到exe文件。

VS2010中如何将exe文件生成setup安装文件

使用 Asset Catalog 减小应用程序文件大小的方法