我需要构建一个将函数导出到 C 项目的 C++ 项目 这是我的 C++ 类:
** MyCppClass.h **
class MyCppClass
{
public:
static void MyCppMethod()
}
** MyCppClass.cpp **
void MyCppClass::MyCppMethod(){}
*现在我需要为方法 MyCppMethod(静态)创建一个接口(interface)。
我这样做了: ** 我的导出.h**
#define Export __declspec(dllexport)
extern "C" void Export MyCppMethodWrapper();
** MtExport.cpp**
#include "MyCppClass.h"
#include "MyExport.h"
void MyCppMethodWrapper() { MyCppClass::MyCppMethod();}
就是这样!
现在是 C 部分(不同的项目)
我将项目与 MyExport.lib 链接
** 程序.c**
#include "MyExport.h" ->does not compile because of the extern "C"
int main()
{
MyCppMethodWrapper();
}
如果我不添加行:#include "MyExport.h"
在 program.c 程序编译并工作正常,但我需要为导出提供 header (客户端需要 header ),我想让程序使用那个 header 。我该如何解决???
感谢您的回答
最佳答案
如果你想这样做,你可以很容易地有条件地定义外部:
#ifdef __cplusplus
#define EXTERN_C extern "C"
#else
#define EXTERN_C
#endif
然后:
EXTERN_C Export MyCppMethodWrapper();
关于c++ - 混合使用 C 和 C++ 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2265027/