随笔分类 - C++程序封装及调用
摘要:将预处理器定义和链接中的子系统subsystem的_WINDOW都改为__CONSOL 项目类型改为exe 如果多次打包,每次打包新增的头文件要用不同的宏名作为导出API前缀
阅读全文
摘要:1.、新建win32控制台项目,勾选dll,都选空项目,命名为 CreatDLL 2、新建cpp文件,命名为DLLmain 3、此时右键项目属性可以看到,预处理器定义中已经有了CREAT_DLL 和 _CONSOLE。相当于项目中的每个文件都加上了 1 #define _CONSOLE 2 #def
阅读全文
摘要:windows中静态库lib和动态dll的区别及使用方法 1. 静态库lib和动态dll的区别 1.1 项目类型 VS在建Win32项目时,有以下选项: windows应用程序 控制台应用程序 DLL 静态库 最后两个类型:DLL和静态库,这两种项目类型是不可以单独运行的,必须在Windows应用程
阅读全文
摘要:众所周知,出现.lib, .dll这种文件的原因是为了保护源代码,这个就不细说了。 用OpenCV的开源库来举个例子看一下就知道了: bin文件夹里面放的都是dll文件; lib文件夹里面放的都是伴随dll文件的动态lib文件; staticlib文件夹里面放的才是真正的静态lib文件,和dll文件
阅读全文
摘要:生成dll:(后面调用需要此步骤中的 .h, .lib 和 .dll) 1 //CreatDLL.h 2 #pragma once//避免重复编译 3 4 #ifdef CREATDLL_EXPORTS//这个宏只要你选了项目配置类型为.dll,在预处理器里会自动包含. 5 #define DLL_
阅读全文
摘要:一直对动态库的封装理解不是很透彻,虽然之前写过一个Demo,不过并没有真正的理解。所以写下来,帮助自己理解下。 1、一个程序从源文件编译生成可执行文件的步骤: 预编译 --> 编译 --> 汇编 --> 链接 (1)预编译,即预处理,主要处理在源代码文件中以“#”开始的预编译指令,如宏展开、处理条件
阅读全文
摘要:1.什么是静态链接库 静态库(Static Library)通常包含一堆程序员自定义的变量与函数,在编译期间由编译器和链接器将它集成到可执行文件中,也就是生成的.exe文件中 2.静态库的扩展名 在Windows下,静态库的扩展名是.lib,在Linux下是.a 3.静态库的优缺点 1)优点: 发布
阅读全文