【第22期】观点:IT 行业加班,到底有没有价值?

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

转载 2015年11月18日 16:55:24
使用VS2008,在项目属性中有一项MFC的使用,有三种设置:    
1.使用标准Windows库   
2.在共享DLL中使用MFC    
3.在静态库中使用MFC    
       第一种顾名思义。
       第二种指的是打包时一些MFC的DLL的内容没有被包含在EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件。
       第三种是将DLL中的相关代码写进EXE文件中,文件较大,但是可以在没有相关DLL的机器上运行。    
       同时,如果程序本来是第二种方式,发给同事,在同事机器上运行时,可能会出现错误:   “无法启动程序……,由于应用程序配置不正确,未能启动此应用程序。”我觉得,在开发阶段的程序都选第3种比较好吧,不用管大小以及效率,等后期打包的时候用spy等其他工具都可以,来侦测DLL等就行了。(http://blog.csdn.net/xiexievv/article/details/6314874)

       "在共享DLL中使用MFC"指的是打包时一些MFC的DLL的内容没有被硬编码到在EXE文件中,所以EXE会文件较小,但是运行时要求运行的系统环境中要有相关的DLL文件.

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

      静态库中编译出来的可执行文件拿到其它机器上也可以运行,共享DLL中编译出来的可执行文件在本机上可以执行,若拿到其它机器上就需要相应的动态库支持。

     另外,共享DLL下的工程大小会稍小一些,但是在另一台机器上运行时务必保证那一台机器上有动态库支持。

举报

相关文章推荐

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

使用VS2010,在项目属性中有一项MFC的使用,有三种设置:     1.使用标准Windows库    2.在共享DLL中使用MFC     3.在静态库中使用MFC           ...

VC++动态链接库(DLL)编程深入浅出(zz)

http://www.cnblogs.com/chio/archive/2007/11/03/948480.html 1.概论  先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

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

使用VS编译MFC工程是在项目属性中有一项MFC的使用,有三种设置:     1.使用标准Windows库    2.在共享DLL中使用MFC     3.在静态库中使用MFC        ...

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

使用VS2008,在项目属性中有一项MFC的使用,有三种设置: <p style="line-height: 25px; margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px; fon...

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

1. 项目类型:  Windows 资源管理器(X)  MFC 标准(A)  2. MFC 的使用:  在共享 DLL 中使用 MFC(U)  在静态库中使用 MFC(E)  在用...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)