MFC——在共享DLL中使用MFC和在静态库中使用MFC的区别

创建MFC对话框程序时,使用MFC有两个选项:

  • 在共享DLL中使用MFC
  • 在静态库中使用MFC

MFC——在共享DLL中使用MFC和在静态库中使用MFC的区别

在共享DLL中使用MFC

在共享DLL中使用MFC指:打包时,一些MFC的DLL的内容没有被包含在程序的EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件。

在静态库中使用MFC

在静态库中使用MFC 指:将DLL对应的lib静态库中的相关代码硬编码到EXE文件中,文件较大,但是可以在没有已经被包含DLL的机器上运行,可移植性好。当然即使如此也并非所有的DLL都会将其硬编码到Exe中,因此仍然某些DLL是必须的,比如Redistributable Package中的某些DLL。

个人建议:在开发阶段的程序选第2种较好,先不考虑程序大小以及效率,等后期打包的时候用spy等其他工具来侦测DLL等。