【发布时间】:2015-05-13 23:20:42
【问题描述】:
所以基本上我正在尝试将自定义 C 库集成到现有 C++ 项目中。我有各种 C++ 对象需要存储/加载到 C DB 中并与各种 C 函数接口。我需要将我的 C++ 对象转换为 C 结构,然后再转换回来。我取得了进展,但遇到了内存分配问题。
我知道我没有在此处包含任何代码,但我只是想知道是否有针对此任务的一般提示?我已经看到用于通用 C++ 对象的 extern "C" 中的 void*,但我确实需要从 C++ 对象和 C 结构加载/保存数据。
如果我的措辞不正确,请追问!
【问题讨论】:
-
展示您正在查看的内容的示例可能会有所帮助。这是普通旧数据的集合还是其他什么?
struct和class实际上是同一个东西,但默认权限不同。 -
@RetiredNinja:
class和struct在 C++ 中基本相同,但在 C 中肯定不同。您不能将多态 C++ 类对象传递给期望扁平 C- 的 C 代码样式结构,布局将不匹配。因此,在琐碎的情况下,可能需要从一个到另一个进行一些转换。但你是对的,我们需要一个 OP 用例的例子。