然而,实际的程序代码是在C中完成的,使用了所有常见的C功能,例如异常,STL等.
导出的API /标题本身将使用导出“C”关键字以纯C编写.
如果我打算将这个dll提供给那些不了解C的用户,我应该警惕什么?通常,他们不应该关心实际代码是在C中的事实,并且只需要知道如何通过头文件链接C代码.
我被告知我应该确保libstd是静态链接的,这在所有平台上都是不可能的(将有一个linux和一个windows版本).异常怎么样?等等
#ifdef __cplusplusextern "C" {#endif
2)制作不透明指针:
struct myInternalStructFOO; // incomplete typetypedef struct myInternalStructFOO *cFOO; // public typeclass myInternalClassbar; // incomplete typetypedef class myInternalClassbar *cbar; // public type
你不需要在你的公共API中给出类定义.类定义将放在一些私有头文件中.
总结以上是内存溢出为你收集整理的运送C dll时只暴露出C api全部内容,希望文章能够帮你解决运送C dll时只暴露出C api所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)