declspec(dllexport)和declspec(dllexport)的实际应用
2015-11-26 14:59
495 查看
场景
当一个类在头文件被declspec(dllexport)定义的时候,说明该类将被导出,当提供给用户调用的时候,该头文件中可以保留declspec(dllexport)这个关键字,程序能够正常运行,但是明显不符合语法规范,如果是手动修改,每重新编译一次,都必须手动修改该头文件。
解决
创建一个头文件dlldefine.h,里面的内容如下:
#ifdef SEARCH_EXPORTS
#define SEARCH_CLASS __declspec(dllexport)
#define SEARCH_API extern "C" __declspec(dllexport)
#else
#define SEARCH_CLASS __declspec(dllimport)
#define SEARCH_API extern "C" __declspec(dllimport)
使用
创建的动态库,需要导出的类包含该头文件,使用SEARCH_CLASS取代导出的关键字,在预定义处理
器中添加SEARCH_EXPORTS,调用该动态库的只需要包含该头文件,因为在编译的时候没有定义SEARCH_EXPORTS,所以就实现了
导入的功能
当一个类在头文件被declspec(dllexport)定义的时候,说明该类将被导出,当提供给用户调用的时候,该头文件中可以保留declspec(dllexport)这个关键字,程序能够正常运行,但是明显不符合语法规范,如果是手动修改,每重新编译一次,都必须手动修改该头文件。
解决
创建一个头文件dlldefine.h,里面的内容如下:
#ifdef SEARCH_EXPORTS
#define SEARCH_CLASS __declspec(dllexport)
#define SEARCH_API extern "C" __declspec(dllexport)
#else
#define SEARCH_CLASS __declspec(dllimport)
#define SEARCH_API extern "C" __declspec(dllimport)
使用
创建的动态库,需要导出的类包含该头文件,使用SEARCH_CLASS取代导出的关键字,在预定义处理
器中添加SEARCH_EXPORTS,调用该动态库的只需要包含该头文件,因为在编译的时候没有定义SEARCH_EXPORTS,所以就实现了
导入的功能
相关文章推荐
- 无线网卡的Master,Managed,ad-hoc,monitor模式
- UI_界面传值方式
- C++primer plus第六版课后编程练习答案5.7
- 一次 JVM 调优的笔记
- Caffe中learning rate 和 weight decay 的理解
- 容斥原理-shuoj—小明系列之高中时光
- PHP 解析JSON数组
- 单个listView展示多类型Item出现混乱显示的问题
- JAVA【设计模式】—— 总览导图
- 计算机网络---基础题目汇总二
- ListView 中使用Button中不响应OnItemClickListener事件
- 求复数的对数
- servlet url
- C++primer plus第六版课后编程练习答案5.6
- SQL 查询一列多行返回一行
- struts2工作原理
- (三)Opestack Juno for CentOS7 架构安装笔记(swift篇)
- OS笔记047代理传值和block传值
- 快速入门系列--CLR--01基本概念
- Invoke的使用情景