dllexport、dllimport区别

以下全部是经过实际测试过的(测试环境VS2010):
要将某个库文件导出成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),至少都需要加一个,如果都不加,会报错

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值