首页 > 解决方案 > 如何将 c++ 类从 .dylib 或 dll 导出到 python 和其他语言

问题描述

我在 C++ 中创建了一个单例类并生成了一个库。对于操作系统,我如何使用 dll 或 dylib 将该单例类导出到 python 中。这个 dll 或 dylib 可以被任何 c++ 项目使用,但不能导出到其他语言。

正如我所观察到的,对于 c 函数,我们可以在函数声明后面添加 MACRO 并导出它。但是在这种情况下如何导出类,语法是什么?我们可以在 python 中使用 ctypes 来查找动态库。但是使用 ctypes 我只能导出函数而不能导出类​​,甚至不确定它的语法。

我用过

定义 LIBRARY_API extern "C"属性((visibility ("default")))

为 mac 和 linux 导出函数,对于我使用过的 windows 也是如此:

定义 LIBRARY_API extern "C" __declspec(dllexport)

但是使用这些我无法导出类。请任何人都可以对这些工作给出一个很好的解释,或者可以提供很好的链接来参考上述主题。

我已尽力解释我的疑问,请有人帮忙吗?

标签: pythonc++dllimportdylibdllexport

解决方案


推荐阅读