最佳答案
我有一个 C + + 库,它提供了用于管理数据的各种类。我有图书馆的源代码。
我想扩展 C + + API 以支持 C 函数调用,这样这个库就可以同时与 C 代码和 C + + 代码一起使用。
I'm using GNU tool chain (gcc, glibc, etc), so language and architecture support are not an issue.
是否有任何原因,为什么这是 严格来说不可能?
有什么 抓到你了需要我注意的吗?
Are there resources, example code and/or documentation available regarding this?
我还发现了其他一些事情:
#ifdef __cplusplus
extern "C" {
#endif
//
// Code goes here ...
//
#ifdef __cplusplus
} // extern "C"
#endif
#ifndef __cplusplus #error
的东西有助于在这里检测任何疯狂。因为结构遵循以下形式,所以 C 不会混淆。
typedef struct X { ... } X
Then use pointers for passing around C++ objects, they just have to be declared in C as struct X where X is the C++ object.
All of this is courtesy of a friend who's a wizard at C++.