dllexport、dllimport区别
2016-07-22 09:42
204 查看
以下全部是经过实际测试过的(测试环境VS2010):
要将某个库文件导出成dll的时候
可以使用dllexport、实际上也可以使用dllimport,
例如有一个类
class myclass{
int func();
int func1();
}
要将这个类进行导出成库文件,那么只需要这样定义(下面所有的代码都假设你在生成库文件的代码中自定义了宏名:DLL_EXPORT):
就可以导出库文件,在调用的时候,可以直接指定头文件和库路径就可以使用该库,另外,针对面的类还可以这样:
即,将export,改成import,也是可以生成库文件,并可以被调用
但是,需要注意的是,如果类中有static 的变量的时候,只使用dllimport生成库文件会报错(只有static函数没有static变量时不会报错):
这样生成库文件会报错!
另外,不论是__declspec(dllimport),还是__declspec(dllexport),至少都需要加一个,如果都不加,会报错
要将某个库文件导出成dll的时候
可以使用dllexport、实际上也可以使用dllimport,
例如有一个类
class myclass{
int func();
int func1();
}
要将这个类进行导出成库文件,那么只需要这样定义(下面所有的代码都假设你在生成库文件的代码中自定义了宏名:DLL_EXPORT):
#define DLL_EXPORT __declspec(dllexport) class DLL_EXPORT myclass{ int func(); int func1(); }
就可以导出库文件,在调用的时候,可以直接指定头文件和库路径就可以使用该库,另外,针对面的类还可以这样:
#define DLL_EXPORT __declspec(dllimport) class DLL_EXPORT myclass{ int func(); int func1(); }
即,将export,改成import,也是可以生成库文件,并可以被调用
但是,需要注意的是,如果类中有static 的变量的时候,只使用dllimport生成库文件会报错(只有static函数没有static变量时不会报错):
#define DLL_EXPORT __declspec(dllimport) class DLL_EXPORT myclass{ int func(); int func1(); static int m_value; }
这样生成库文件会报错!
另外,不论是__declspec(dllimport),还是__declspec(dllexport),至少都需要加一个,如果都不加,会报错
相关文章推荐
- 信号未决与阻塞
- EL表达式 实现保留两位小数
- 生产企业如何部署VMware虚拟化的解决方案
- 关于抓取网页数据超时问题
- spring MVC配置文件
- 关于正确使用Android AsyncTask学习整理
- 理解Windows操作系统的KMS与MAK密钥
- 设置中打开自己app
- IOC框架
- Uva 507 最大子矩阵和
- 023——hibernate统计查询
- Weex&ReactNative对比
- 正确理解ThreadLocal[转]
- C#中的SqlBulkCopy批量插入数据
- 浅谈Ajax请求与浏览器缓存
- viewpager轮播
- 个人小知识点强化记忆
- postgresql日期计算 laravel模板引擎 数据迁移 2016.07.21回顾
- python网络爬虫抓取图片
- 提高开发效率的Eclipse实用操作