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++使名称变为名称,从而可以解决具有相同名称但不同参数列表的函数(函数重载)。