导出C++ dll文件
2013-11-26 20:50
246 查看
方法1.
直接新建 Qt dll library, 使用工程自动创建的宏定义
方法2.
(1)新建一个Empty的Win32项目(如ExampleDLL),选择Application type 为DLL,
2. 添加要导出的类(如ExampleClass), 并在该类中添加导出/导入宏定义(如 EXAMPLECLASS_LIB 和 EXAMPLE_EXPORT)
3. 若在第2步直接编译,可以编译通过,但会有warning: inconsistent dll linkage
这是因为 若没有在Project->Properties->c/C++->PreProcessor->PreProcessor Definitions 中添加 EXAMPLECLASS_LIB 声明, (2)中将使用 EXPORTDLL_EXPORT __declspec(dllimport) , 表示该项目是导入了 ExampleClass 类,而不是导出该类的dll。故:
修改后即可。
直接新建 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。故:
修改后即可。
相关文章推荐
- 如何生成DLL文件并导出函数及如何在C++或C#中调用DLL中导出的函数
- C++封装DLL,导出一个类
- C++动态链接库导出函数或者类
- C++调用lib或dll文件
- quick-cocos2dx将C++导出lua
- Mac下导出c++到Lua失败
- C#,C++Dll文件调用心得
- C++导出DLL
- C#中调用C++的dll的参数为指针类型的导出函数(包括二级指针的情况)
- dll文件的c++制作
- 导出C++DLL出现的莫名问题和问题求助
- 菜鸟笔记:c/c++中关于lib与dll文件的生成与使用。
- C++静态库中使用_declspec(dllexport) 不能导出函数的问题
- C++接口导出到lua组件
- C++中实现把表的数据导出到EXCEL并打印实例代码
- 如何从dll文件导出对应的lib文件
- C#中调用C++的dll的参数为指针类型的导出函数(包括二级指针的情况)
- 在WPF中,使用C++编写的DLL文件
- 博客导出工具(C++实现,支持sina,csdn,自定义列表)
- C# 调用C++的导出函数,含有回掉函数