MFC静态库的使用

相对动态库来讲,静态库更简单,但也有些要注意的小细节:

1、
静态库连接的时候,VS有警告
warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined
这是由于对静态库而言,不须要添加任何依赖的动态库,依赖是由编译连接该静态库的EXE/DLL去负责的。

2、
静态库的函数和类的导出,都不须要像动态库那样加__declspec( dllexport )。若是加了__declspec(dllexport),VS反而在连接的时候提示: error LNK2019: 没法解析的外部符号(unresolved external symbol...)

3、
同一个Solution里,若是要使用到一个静态库,经过设置项目依赖便可,能够不用在项目的输入库中指定。

4、
静态库使用的是连接该静态库的 EXE/DLL 的资源。因此若是静态库里存放的对话框类,对话框资源仍是须要加到 EXE/DLL 中。