您可以在C包装程序中使用PIMPL习惯用法。您提供了一个
YourClass_Create内部调用构造函数的方法(使用
new),并返回指向您的类实例的指针;客户端代码,这将只是一个不透明的句柄(也可能是
typedef为
void*),要传递给你的C接口的每个函数指定在其实例有工作(就像
FILE *在
stdio)。
所有这些功能所要做的就是调用句柄上的相应方法(转换回指向您的类的指针)并将异常转换为错误代码。
正如 @ jdv-Jan de Vaan 在其评论中指出的那样,请不要忘记C包装代码周围的必要
#ifdefed
extern "C"{},否则您可能会遇到链接器错误。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)