Dar*_*con 25
您需要为每个需要调用的函数编写包装函数.例如:
// The C++ implementation
class SomeObj { void func(int); };
extern "C" {
SomeObj* newSomeObj() {return new SomeObj();}
void freeSomeObj(SomeObj* obj) {delete obj;}
void SomeObj_func(SomeObj* obj, int param) {obj->func(param)}
}
// The C interface
typedef struct SomeObjHandle SomeObj;
SomeObj* newSomeObj();
void freeSomeObj(SomeObj* obj);
void SomeObj_func(SomeObj* obj, int param);
Run Code Online (Sandbox Code Playgroud)
请注意,这必须是C++代码.在extern "C"该函数使用C命名约定指定.