zoukankan      html  css  js  c++  java
  • 减小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算法。。。



  • 相关阅读:
    Kubernetes 认证(证书)过期怎么办
    JavaScript 全屏显示窗口
    IE6下很无语的问题,不知为何
    项目开发-让设计模式成为一种心智(转)
    CSS中Float概念相关文章采撷
    随记浏览器兼容性
    常用正则表达式
    ASP.NET 调用Delphi DLL问题
    ASP.NET调用DELPHI DLL
    转:Oracle 排序中常用的NULL值处理方法
  • 原文地址:https://www.cnblogs.com/sugar13/p/10216597.html
Copyright © 2011-2022 走看看