gpt4 book ai didi

c++ - 转换 C++ 对象 <--> C 结构的最佳方法?

转载 作者:搜寻专家 更新时间:2023-10-31 02:22:31 24 4
gpt4 key购买 nike

基本上,我正在尝试将自定义 C 库集成到现有的 C++ 项目中。我有各种 C++ 对象,需要将它们存储/加载到 C DB 中并与各种 C 函数接口(interface)。我需要将我的 C++ 对象转换为 C 结构,然后再转换回来。我取得了进步,但遇到了内存分配问题。

我知道我没有在此处包含任何代码,但我只是想知道是否有针对此任务的一般提示?我已经看到 void* 在 extern "C"中用于通用 C++ 对象,但我确实需要从/向 C++ 对象和 C 结构加载/保存数据。

如果我的措辞不正确,请提问!

最佳答案

使用 extern "C" 声明您的 C 结构:

extern "C" {
struct some_c_struct {
int field1;
char *p;
};
};

然后,在您的 C++ 代码中,您可以像使用任何其他 C++ classstruct 一样使用 some_c_struct,并保证 C 兼容性,并成功将它们传入和传出您正在使用的 C 代码库。

实际上,不需要extern "C" 声明,但所有语言律师都需要它。此外,您的结构不能使用任何特定于 C++ 的功能,例如虚函数。

关于c++ - 转换 C++ 对象 <--> C 结构的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30226770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com