41.1 VS软件构建库过程
最近开发中需要构建自己的函数库,然后让别人去掉,之前没自己弄个,然后查看一下资料发现VS可以方便的对进行函数实现封库操作。
第一步:建立库工程
第二步:声明及实现相关函数
第三步:编译生成库文件
Lib里面包含了dll的描述信息,比如函数符号表,偏移地址等信息,而非实际代码,所以我们在vside里面包含这个Lib文件,vs在编译器期间会自动读取lib配置信息,然后去系统指定动态库目录加载dll库!
编译器只会在编译时间用到lib文件来获取dll库里的某些信息,并不会被加载到程序当中!
动态运行时库(MD/MDd)-静态运行时库(MT/MTd)-/MT、/MTd、/MD、/MDd各选项区别
- MT选项:链接LIB版的C和C++运行库。在链接时就会在将C和C++运行时库(LIBCMT.LIB、LIBC.LIB)集成到程序中,程序体积会变大。
- MTd选项:LIB的调试版。
- MD选项:使用DLL版的C和C++运行库,这样在程序运行时会动态的加载对应的DLL,程序体积会减小,缺点是在系统没有对应DLL时程序无法运行(需添加MSVCPxx.DLL、MSVCRxx.DLL)。
- MDd选项:表示使用DLL的调试版。
- 带T的链接静态库lib;带D链接动态库dll;带d为调试版本,库名加d
41.2 VS软件应用库过程
现在开始建立应用工程,应用刚才编译出来的库。
第一步:建立应用程序
第二步:讲库文件拷贝到新目录
第三步:项目属性中添加路径
第四步:在链接器中指定依赖的库名称
第五步:代码生成中指定运行方式(静态库为MT/动态库为MD)
第六步:代码实现及编译
运行结果