混淆c和c的问题
发布时间:2020-12-16 09:26:18 所属栏目:百科 来源:网络整理
导读:我需要构建一个将函数导出到c项目的c项目 这是我的c级: ** MyCppClass.h ** class MyCppClass{public:static void MyCppMethod()} ** MyCppClass.cpp ** void MyCppClass::MyCppMethod(){} *现在我需要为Method MyCppMethod(静态)创建一个接口. 我做到了:
我需要构建一个将函数导出到c项目的c项目
这是我的c级: ** MyCppClass.h ** class MyCppClass { public: static void MyCppMethod() } ** MyCppClass.cpp ** void MyCppClass::MyCppMethod(){} *现在我需要为Method MyCppMethod(静态)创建一个接口. 我做到了: #define Export __declspec(dllexport) extern "C" void Export MyCppMethodWrapper(); ** MtExport.cpp ** #include "MyCppClass.h" #include "MyExport.h" void MyCppMethodWrapper() { MyCppClass::MyCppMethod();} 而已 ! 现在的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(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |