导出C++ dll文件

方法1. 

  直接新建 Qt dll library, 使用工程自动创建的宏定义

 

方法2.

  (1)新建一个Empty的Win32项目(如ExampleDLL),选择Application type 为DLL, 

 

 

2. 添加要导出的类(如ExampleClass), 并在该类中添加导出/导入宏定义(如 EXAMPLECLASS_LIBEXAMPLE_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。故:

 

修改后即可。

 

posted on 2013-11-26 20:50  没有什么能够阻挡  阅读(297)  评论(0编辑  收藏  举报

导航