有什么办法可以用C代码调用C ++代码吗?
class a
{
someFunction();
};
如何从C代码中调用someFunction()
?换句话说,我在这里问如何避免名称损坏。
答案 0 :(得分:13)
(我不记得C ++的所有该死的强制转换操作符并且懒得查找它,所以如果您喜欢以下代码,请使用更具体的转换替换(Foo *)。)
// My header file for the C API.
extern "C"
{
void bar(void* fooInstance);
}
// My source file for the C API.
void bar(void* fooInstance)
{
Foo* inst = (Foo*) fooInstance;
inst->bar();
}