您的位置:首页 > 其它

dllexport、dllimport区别

2016-07-22 09:42 204 查看
以下全部是经过实际测试过的(测试环境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),至少都需要加一个,如果都不加,会报错
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: