动态链接库生成与应用
在这个解决方案中,分别新建两个项目,其中在解决方案属性中,对启动项目进行操作。
Test_xlog_dll表示 对动态链接库进行操作 (消费方)
Xlog_dll表示 产生动态链接库 (生产方)
对xlog_dll配置
/*生产方*/
//dll输出设置
//常规 =》输出目录设置 ..\..\bin
//修改链接器=》 常规 =》输出路径 $(OutDir)$(TargetName)_d$(TargetExt)
//
//lib输出路径设置
//链接器=》高级=》导入库 ..\..\lib\$(TargetName)_d.lib
【能在对应文件路径中找到 lib dll文件】
1.
2.
3.
另外对编译中的预处理器进行说明:XLOG_EXPORTS;
#ifdef _WIN32
#ifdef XLOG_EXPORTS //定义预处理器用于区分引用者是内部还是外部
#define XLOG_API __declspec(dllexport) //内部调用
#else
#define XLOG_API __declspec(dllimport) //外部调用
#endif
#else
#define XLOG_API
#endif
其中XLOG_EXPORTS用于区分引用为内部引用 还是 外部调用。这里用的是内部调用,生成相应的dll lib文件。这时候可以点击生成解决方案[有错误也请忽略]!就可以发现bin文件夹有dll文件、lib文件夹由lib文件
===============================================================================
对test_xlog_dll配置
/*消费方*/
//1. 找到函数声明 __declspec(dllimport) void TestLog()
//设置c/c++ =》常规=》附加包含目录 ../xlog_dll
//2. 找到函数定义 引入lib文件 (xlog_dll_d.lib)00
//设置 链接器 常规=》 附加包含库目录 (..\..\lib)
//输入=》附加依赖项 (xlog_dll_d.lib)
//3. 执行载入dll文件(xlog_dll_d.dll)
//常规=》 输出目录设置 ..\..\bin
//调试=》 工作目录 =》..\..\bin
- 其实就是指定头文件#include <xlog.h>
2.
3.
完成动态链接库的设计!!!