当前位置: 首页> 科技> 能源 > C++ dll导出类的方法

C++ dll导出类的方法

时间:2025/7/10 10:27:16来源:https://blog.csdn.net/weixin_42318094/article/details/140086678 浏览次数:0次

要在C++动态库中导出类,可以使用以下步骤:

  1. 定义一个类并实现其成员函数。
  2. 在类的声明前加上__declspec(dllexport)标记(Windows平台)或__attribute__((visibility("default")))标记(Linux平台),以将该类及其成员函数导出。
  3. 将类的定义和实现放在头文件中,并编译为动态链接库。

以下是一个简单示例:

example.h:

 
  1. #ifndef EXAMPLE_H
  2. #define EXAMPLE_H
  3. #ifdef _WIN32 // Windows平台下的导出声明
  4. #ifdef EXAMPLE_DLL_EXPORTS
  5. #define EXAMPLE_API __declspec(dllexport)
  6. #else
  7. #define EXAMPLE_API __declspec(dllimport)
  8. #endif
  9. #else // Linux平台下的导出声明
  10. #define EXAMPLE_API __attribute__((visibility("default")))
  11. #endif
  12. class EXAMPLE_API MyExampleClass {
  13. public:
  14. MyExampleClass();
  15. void HelloWorld();
  16. };
  17. #endif // EXAMPLE_H

example.cpp:

 
  1. #include "example.h"
  2. #include <iostream>
  3. MyExampleClass::MyExampleClass() {}
  4. void MyExampleClass::HelloWorld() {
  5. std::cout << "Hello, World!" << std::endl;
  6. }

然后,你可以将这些文件编译为动态链接库。在Windows下,你需要指定 EXAMPLE_DLL_EXPORTS 宏进行导出,例如使用 Visual Studio 编译;在Linux下,你需要使用 -fPIC 参数编译为位置独立码。

最后,可以创建一个演示程序来使用这个动态链接库:

main.cpp:

 
  1. #include "example.h"
  2. int main() {
  3. MyExampleClass myObj;
  4. myObj.HelloWorld();
  5. return 0;
  6. }

编译和链接这个程序时,需要将动态库链接到该程序中。

关键字:C++ dll导出类的方法

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: