外部“C”函数内部使用C ++类

Extern “C” function internally uses C++ class

本问题已经有最佳答案,请猛点这里访问。

这样做合法吗?我想导出C函数,但内部函数将使用C++类。

1
2
3
4
extern"C" BOOL /*BOOL==int*/ Func()
{
   return someclass::getinstance()->Func(); // this is just bool tho
}


这是完全合法的。extern"c"的目的是防止func()的名称被篡改(用类型信息修饰),以便C模块可以使用它的普通名称链接到它。C++使名称变为名称,从而可以解决具有相同名称但不同参数列表的函数(函数重载)。