VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 698|回复: 4

[分享] VS2013减小MFC对话框生成的EXE体积

[复制链接]
51_avatar_middle
online_admins Syc 发表于 2018-5-29 22:41:27 | 显示全部楼层 |阅读模式
今天无意中用VS2013新建了一个MFC的对话框工程,一路下一步,都用的默认配置,简单的更改了几个地方:
①、基于对话框;
②、取消勾选“安全开发生命周期(SDL)检查”;
③、选中“在静态库中使用MFC”;

具体如下图:
VS2013减小MFC对话框生成的EXE体积
VS2013减小MFC对话框生成的EXE体积
VS2013减小MFC对话框生成的EXE体积
VS2013减小MFC对话框生成的EXE体积
VS2013减小MFC对话框生成的EXE体积
VS2013减小MFC对话框生成的EXE体积

以上的配置,也算是我们平时在新建一个MFC对话框工程的常用配置。之后F7快捷键分别编译生成Debug和Release模式下的EXE程序。生成的文件体积分别为如下:
Debug:9183KB
Release:3231KB

怎么样?很大吧?Debug模式下有9M多,Release模式下也有3M多。体积确实不小。可在刚刚创建工程的过程中我发现了一个选项:无增强的MFC控件。一般MFC的增强控件是指微软在后期新添加的扩充MFC类库的控件类,我查了一下,还真不少,一般都是以CMFC开头的类,大致如下:
  1. CMFCAcceleratorKey
  2. CMFCAcceleratorKeyAssignCtrl
  3. CMFCAutoHideBar
  4. CMFCAutoHideButton
  5. CMFCBaseTabCtrl
  6. CMFCBaseToolBar
  7. CMFCBaseVisualManager
  8. CMFCButton
  9. CMFCCaptionBar
  10. CMFCCaptionButton
  11. CMFCCmdUsageCount
  12. CMFCColorBar
  13. CMFCColorButton
  14. CMFCColorDialog
  15. CMFCColorMenuButton
  16. CMFCColorPickerCtrl
  17. CMFCColorPopupMenu
  18. CMFCCustomColorsPropertyPage
  19. CMFCDesktopAlertDialog
  20. CMFCDesktopAlertWnd
  21. CMFCDesktopAlertWndButton
  22. CMFCDesktopAlertWndInfo
  23. CMFCDisableMenuAnimation
  24. CMFCDragFrameImpl
  25. CMFCDropDownFrame
  26. CMFCDropDownToolBar
  27. CMFCDropDownToolbarButton
  28. CMFCDynamicLayout
  29. CMFCEditBrowseCtrl
  30. CMFCFilterChunkValueImpl
  31. CMFCFontComboBox
  32. CMFCFontInfo
  33. CMFCHeaderCtrl
  34. CMFCImageEditorDialog
  35. CMFCImageEditorPaletteBar
  36. CMFCImagePaintArea
  37. CMFCKeyMapDialog
  38. CMFCLinkCtrl
  39. CMFCListCtrl
  40. CMFCMaskedEdit
  41. CMFCMenuBar
  42. CMFCMenuButton
  43. CMFCOutlookBar
  44. CMFCOutlookBarPane
  45. CMFCOutlookBarTabCtrl
  46. CMFCPopupMenu
  47. CMFCPopupMenuBar
  48. CMFCPreviewCtrlImpl
  49. CMFCPrintPreviewToolBar
  50. CMFCPropertyGridColorProperty
  51. CMFCPropertyGridCtrl
  52. CMFCPropertyGridFileProperty
  53. CMFCPropertyGridFontProperty
  54. CMFCPropertyGridProperty
  55. CMFCPropertyGridToolTipCtrl
  56. CMFCPropertyPage
  57. CMFCPropertySheet
  58. CMFCReBar
  59. CMFCRibbonApplicationButton
  60. CMFCRibbonBar
  61. CMFCRibbonBaseElement
  62. CMFCRibbonButton
  63. CMFCRibbonButtonsGroup
  64. CMFCRibbonCategory
  65. CMFCRibbonCheckBox
  66. CMFCRibbonColorButton
  67. CMFCRibbonComboBox
  68. CMFCRibbonContextCaption
  69. CMFCRibbonCustomizeDialog
  70. CMFCRibbonCustomizePropertyPage
  71. CMFCRibbonEdit
  72. CMFCRibbonFontComboBox
  73. CMFCRibbonGallery
  74. CMFCRibbonGalleryMenuButton
  75. CMFCRibbonLabel
  76. CMFCRibbonLinkCtrl
  77. CMFCRibbonMainPanel
  78. CMFCRibbonMiniToolBar
  79. CMFCRibbonPanel
  80. CMFCRibbonProgressBar
  81. CMFCRibbonQuickAccessToolBarDefaultState
  82. CMFCRibbonSeparator
  83. CMFCRibbonSlider
  84. CMFCRibbonStatusBar
  85. CMFCRibbonStatusBarPane
  86. CMFCRibbonUndoButton
  87. CMFCShellListCtrl
  88. CMFCShellTreeCtrl
  89. CMFCSpinButtonCtrl
  90. CMFCStandardColorsPropertyPage
  91. CMFCStatusBar
  92. CMFCTabCtrl
  93. CMFCTabDropTarget
  94. CMFCTabToolTipInfo Structure
  95. CMFCTasksPane
  96. CMFCTasksPaneTask
  97. CMFCTasksPaneTaskGroup
  98. CMFCToolBar
  99. CMFCToolBarButton
  100. CMFCToolBarComboBoxButton
  101. CMFCToolBarComboBoxEdit
  102. CMFCToolBarDateTimeCtrl
  103. CMFCToolBarEditBoxButton
  104. CMFCToolBarFontComboBox
  105. CMFCToolBarFontSizeComboBox
  106. CMFCToolBarImages
  107. CMFCToolBarMenuButton
  108. CMFCToolBarInfo
  109. CMFCToolBarsCustomizeDialog
  110. CMFCToolTipCtrl
  111. CMFCToolTipInfo
  112. CMFCVisualManager
  113. CMFCVisualManagerOffice2003
  114. CMFCVisualManagerOffice2007
  115. CMFCVisualManagerOfficeXP
  116. CMFCVisualManagerVS2005
  117. CMFCVisualManagerWindows
  118. CMFCVisualManagerWindows7
  119. CMFCWindowsManagerDialog
复制代码


本身我们只想创建个简单的MFC对话框工程,暂时也用不上上面提到的那些MFC扩充类,所以能不能去掉对MFC增强控件的支持呢?那么我们就动手试试。再创建一个MFC的对话框工程,勾选上刚刚提到的“无增强的MFC控件”,之后我们再来看看生成的Debug和Release版本的EXE的体积大小:
Debug:3099KB
Release:398KB


怎么样?这回体积小了很多吧?Debug版本变成了原来的1/3,Release版本变成了原来的1/10,还不到400k,这回差不多了吧!




上一篇:GetCurrentDirectory的问题及GetModuleFileName和PathRemoveFileSpec的解决办法!
下一篇:【GDI+】MFC画图- 消除锯齿

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

01_avatar_middle
在线会员 libocdf 发表于 2018-5-30 14:33:57 | 显示全部楼层
支持老大!!!!原来这么回事儿!!!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

74_avatar_middle
online_vip08 wssfcn 发表于 2018-5-30 20:43:19 | 显示全部楼层
学习了      

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

51_avatar_middle
在线会员 954624 发表于 2018-6-3 17:47:52 | 显示全部楼层
我测试VS2013 这样设置后
Debug:5951
Release:1810

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

29_avatar_middle
online_vip CDocking 发表于 2018-6-5 10:59:13 | 显示全部楼层
这个厉害了。。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-10-16 04:23

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表