我有一个C++库,提供各种用于管理数据的类.我有库的源代码.
我想扩展C++ API以支持C函数调用,以便库可以同时与C代码和C++代码一起使用.
我正在使用GNU工具链(gcc,glibc等),因此语言和体系结构支持不是问题.
有什么理由说明技术上不可能吗?
是否有任何疑难杂症的,我需要注意?
是否有关于此的资源,示例代码和/或文档?
我发现的其他一些事情:
#ifdef __cplusplus
extern "C" {
#endif
//
// Code goes here ...
//
#ifdef __cplusplus
} // extern "C"
#endif
Run Code Online (Sandbox Code Playgroud)
#ifndef __cplusplus #error东西可以帮助检测任何疯狂.对于结构体,请遵循以下形式,以便C不会混淆.
typedef struct X { ... } X
Run Code Online (Sandbox Code Playgroud)然后使用指针传递C++对象,它们只需要在C中声明为struct X,其中X是C++对象.
所有这一切都是由一位C++精灵的朋友提供的.