我有一个带有标题CFileMapping.cpp和CFileMapping.h的C ++类。我想在我的C代码中调用c ++函数CFileMapping::getInstance().writeMemory( )
。
即使我包装了我的C ++代码并添加了
#ifdef __cplusplus
extern "C"
在头文件中处理c ++代码并添加了
extern" C"
在cpp文件中,我仍然无法像这样调用我的函数
CFileMapping::getInstance().writeMemory().
有人可以帮助我吗?我想保留我的c ++代码,并且能够在我想要的时候调用它。
答案 0 :(得分:4)
您应该为C ++调用创建C包装器:
extern "C"
{
void WriteMemFile()
{
CFileMapping::getInstance().writeMemory( );
}
}
// The C interface
void WriteMemFile();
重要提示: extern "C"
指定该函数使用C命名约定。