如何从C代码调用C ++函数

时间:2015-04-14 13:26:04

标签: c++ c

我有一个带有标题CFileMapping.cpp和CFileMapping.h的C ++类。我想在我的C代码中调用c ++函数CFileMapping::getInstance().writeMemory( )

即使我包装了我的C ++代码并添加了

#ifdef __cplusplus
extern "C"

在头文件中处理c ++代码并添加了
    extern" C" 在cpp文件中,我仍然无法像这样调用我的函数

CFileMapping::getInstance().writeMemory(). 

有人可以帮助我吗?我想保留我的c ++代码,并且能够在我想要的时候调用它。

1 个答案:

答案 0 :(得分:4)

您应该为C ++调用创建C包装器:

extern "C" 
{
  void WriteMemFile() 
  {
    CFileMapping::getInstance().writeMemory( );
  }
}

// The C interface
void WriteMemFile();

重要提示: extern "C"指定该函数使用C命名约定。