在C程序中,我需要获取对位于用C++编写的库中的函数的引用。
下面是代码在c程序中获取指向C++函数库的指针
// Some C includes
#include <cpplib.h>
.
.
.
// A C structure attribute pointing to the C++ function
infoptr.EXT_meshAdapt = &meshAdapt;
的部分问题是编译器告诉我有一个未定义的引用meshAdapt
,而当我做同样的C库是没有问题的。
在这个thread我看到我们可以通过制作一个包装来调用C中的C++函数。但是有没有一种方法可以引用一个C++函数而不需要封装?
您可能可以通过使用C++函数的错位名称来完成它,但它看起来像一个丑陋的黑客。 –
你是什么意思? (我真的不知道C++) – Phantom
如果'meshAdapt'应该可以从'C'调用,那么你应该在头文件中声明它(并在它的lib中实现)为'extern“C”'。唯一的办法,我看到不工作是如果该功能需要重载,在这种情况下,一个'extern“C”'包装是关于你唯一的近乎平凡的选择。 – WhozCraig