"在共享DLL中使用MFC"和"在静态库中使用MFC"有什么区别?用哪种更好?解决方法
"在共享DLL中使用MFC"和"在静态库中使用MFC"有什么区别?用哪种更好?
我用VS2005写软件,在项目属性中有一项MFC的使用,有三种设置:
1.使用标准Windows库
2.在共享DLL中使用MFC
3.在静态库中使用MFC
请问这三者的区别是什么?我只知道选择方式2,生成的exe文件不会包含相关的MFC库,需要自己找到相关的库与程序一起打包;而第3个则会包含相关库,生成的文件会大一些.那么用哪一种好呢?哪一种效率更高呢?
请老鸟给点意见!
------解决方案--------------------
其实都差不多,
不过我经常用第二个,可移植性好,
不过,如果要是用到别的DLL的话,
恐怕就需要用第三种或者第一种了。
------解决方案--------------------
不关移植性的事,第二种指的是打包时一些MFC的DLL的内容没有被包含在EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件,第三种是将DLL中的相关代码写进EXE文件中,文件较大,但是可以在没有相关DLL的机器上运行.
------解决方案--------------------
一般选第二种,因为大多数系统中都会带有MFC 相关的DLL,因为许多程序都是用MFC做的,发布时会发布相关DLL,所以不用静态连接.
------解决方案--------------------
收藏
我用VS2005写软件,在项目属性中有一项MFC的使用,有三种设置:
1.使用标准Windows库
2.在共享DLL中使用MFC
3.在静态库中使用MFC
请问这三者的区别是什么?我只知道选择方式2,生成的exe文件不会包含相关的MFC库,需要自己找到相关的库与程序一起打包;而第3个则会包含相关库,生成的文件会大一些.那么用哪一种好呢?哪一种效率更高呢?
请老鸟给点意见!
------解决方案--------------------
其实都差不多,
不过我经常用第二个,可移植性好,
不过,如果要是用到别的DLL的话,
恐怕就需要用第三种或者第一种了。
------解决方案--------------------
不关移植性的事,第二种指的是打包时一些MFC的DLL的内容没有被包含在EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件,第三种是将DLL中的相关代码写进EXE文件中,文件较大,但是可以在没有相关DLL的机器上运行.
------解决方案--------------------
一般选第二种,因为大多数系统中都会带有MFC 相关的DLL,因为许多程序都是用MFC做的,发布时会发布相关DLL,所以不用静态连接.
------解决方案--------------------
收藏