方法1.
直接新建 Qt dll library, 使用工程自动创建的宏定义
方法2.
(1)新建一个Empty的Win32项目(如ExampleDLL),选择Application type 为DLL,
2. 添加要导出的类(如ExampleClass), 并在该类中添加导出/导入宏定义(如 EXAMPLECLASS_LIB 和 EXAMPLE_EXPORT)
#pragma once #ifdef EXAMPLECLASS_LIB
# define EXAMPLE_EXPORT __declspec(dllexport)
#else
# define EXAMPLE_EXPORT __declspec(dllimport)
#endif class EXAMPLE_EXPORT ExampleClass
{
public:
ExampleClass(void);
~ExampleClass(void);
};
3. 若在第2步直接编译,可以编译通过,但会有warning: inconsistent dll linkage
这是因为 若没有在Project->Properties->c/C++->PreProcessor->PreProcessor Definitions 中添加 EXAMPLECLASS_LIB 声明, (2)中将使用 EXPORTDLL_EXPORT __declspec(dllimport) , 表示该项目是导入了 ExampleClass 类,而不是导出该类的dll。故:
修改后即可。