gpt4 book ai didi

c++ - 为 C 库编写 C++ 包装器

转载 作者:可可西里 更新时间:2023-11-01 16:29:28 26 4
gpt4 key购买 nike

我有一个遗留的 C 库,以 OO 类型的形式编写。典型的功能如下:

LIB *lib_new();
void lib_free(LIB *lib);
int lib_add_option(LIB *lib, int flags);
void lib_change_name(LIB *lib, char *name);

我想在我的 C++ 程序中使用这个库,所以我认为需要一个 C++ 包装器。以上似乎都映射到类似的东西:

class LIB
{
public:
LIB();
~LIB();
int add_option(int flags);
void change_name(char *name);
...
};

我以前从未编写过 C 的 C++ 包装器,也找不到太多关于它的建议。这是创建 C++/C 包装器的良好/典型/明智的方法吗?

最佳答案

不需要 C++ 包装器 - 您只需从 C++ 代码中调用 C 函数即可。恕我直言,最好不要包装 C 代码 - 如果您想将其转换为 C++ 代码 - 可以,但要完全重写。

实际上,假设您的 C 函数是在名为 myfuncs.h 的文件中声明的,那么在您的 C++ 代码中您将希望像这样包含它们:

extern "C" {
#include "myfuncs.h"
}

为了在使用 C++ 编译器编译时为它们提供 C 链接。

关于c++ - 为 C 库编写 C++ 包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2761266/

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