小智 7
如果你需要从C调用lib,我会设计一个内部调用C++函数的干净的C API.C和C++之间的链接是不同的,因此,您必须指定:
#ifdef __cplusplus
extern "C" {
#endif
void my_c_function (void );
#ifdef __cplusplus
}
#endif
Run Code Online (Sandbox Code Playgroud)
关于设计,你必须隐藏类,模板等.我建议你阅读一些C库,如libpng或OpenGL 1.0,以了解纯C接口.
在C中,您必须自己构造和删除"对象".如果在每次调用中为"对象"传递"this"指针,则可以使用某种面向对象的编程.
但不幸的是,你会有类似"无效指针"的东西.如果您不想暴露内部存储器,可以使用句柄(如win32).