C语言中如何区分c和C两种不同的字符?

2026-04-16 17:023阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计289个文字,预计阅读时间需要2分钟。

C语言中如何区分c和C两种不同的字符?

cpp我需要创建一个函数导出到c项目,这是我的C++类:MyCppClass.hclass MyCppClass{public: static void MyCppMethod();};

MyCppClass.cppvoid MyCppClass::MyCppMethod(){}

我需要构建一个将函数导出到c项目的c项目
这是我的c级:

** MyCppClass.h **

class MyCppClass { public: static void MyCppMethod() }

** MyCppClass.cpp **

void MyCppClass::MyCppMethod(){}

*现在我需要为Method MyCppMethod(静态)创建一个接口.

我做到了:
** MyExport.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链接
** program.c **

C语言中如何区分c和C两种不同的字符?

#include "MyExport.h" ->does not compile because of the extern "C" int main() { MyCppMethodWrapper(); }

如果我不添加行:#include“MyExport.h”在program.c程序编译并正常工作,但我需要提供导出的标题(客户端需要标题),我想让程序使用那个标题.我怎么解决???

谢谢你的回答

你可以很容易地有条件地定义extern,如果这是你想要做的事情:

#ifdef __cplusplus #define EXTERN_C extern "C" #else #define EXTERN_C #endif

然后:

EXTERN_C Export MyCppMethodWrapper();

本文共计289个文字,预计阅读时间需要2分钟。

C语言中如何区分c和C两种不同的字符?

cpp我需要创建一个函数导出到c项目,这是我的C++类:MyCppClass.hclass MyCppClass{public: static void MyCppMethod();};

MyCppClass.cppvoid MyCppClass::MyCppMethod(){}

我需要构建一个将函数导出到c项目的c项目
这是我的c级:

** MyCppClass.h **

class MyCppClass { public: static void MyCppMethod() }

** MyCppClass.cpp **

void MyCppClass::MyCppMethod(){}

*现在我需要为Method MyCppMethod(静态)创建一个接口.

我做到了:
** MyExport.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链接
** program.c **

C语言中如何区分c和C两种不同的字符?

#include "MyExport.h" ->does not compile because of the extern "C" int main() { MyCppMethodWrapper(); }

如果我不添加行:#include“MyExport.h”在program.c程序编译并正常工作,但我需要提供导出的标题(客户端需要标题),我想让程序使用那个标题.我怎么解决???

谢谢你的回答

你可以很容易地有条件地定义extern,如果这是你想要做的事情:

#ifdef __cplusplus #define EXTERN_C extern "C" #else #define EXTERN_C #endif

然后:

EXTERN_C Export MyCppMethodWrapper();