以下全部是经过实际测试过的(测试环境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),至少都需要加一个,如果都不加,会报错