C++ 能否导入C++;分类到任何Obj-C头中?
我有一些第三方资源,我正试图集成到我的应用程序中。大部分代码都是C++的,而且在它们的示例中工作得很好。我将原始代码复制到我的项目中,现在它失败了,因为它在Obj-C头中看到C++。 更新: 讨论中的源代码文件名为“SampleApplicationSession.mm”,它与“SampleApplicationSession.h”关联。h导入C++头文件,并导出使用在这些头中找到的类型的几种方法,例如:C++ 能否导入C++;分类到任何Obj-C头中?,c++,objective-c,C++,Objective C,我有一些第三方资源,我正试图集成到我的应用程序中。大部分代码都是C++的,而且在它们的示例中工作得很好。我将原始代码复制到我的项目中,现在它失败了,因为它在Obj-C头中看到C++。 更新: 讨论中的源代码文件名为“SampleApplicationSession.mm”,它与“SampleApplicationSession.h”关联。h导入C++头文件,并导出使用在这些头中找到的类型的几种方法,例如: (void)onQCARUpdate:(QCAR::State*)State 如果导入
- (void)onQCARUpdate:(QCAR::State*)State李>
现在显而易见的解决方案是将mapVC.m重命名为mapVC.mm,但这会导致在以前的工作代码中出现各种错误,即使没有导入。我想我将艰难地完成这一过程……QCAR::State的问题是它不会用C或纯Objective-C代码编译。以下是我在类似情况下使用的解决方案:
#ifdef __cplusplus
typedef QCAR::State QCARState;
#else
typedef struct QCARState__ QCARState;
#endif
- (void)onQCARUpdate:(QCARState *)state;
现在每种语言都很快乐。您甚至可以让普通C代码在QCARState*指针之间传递。或者,如果您有一个类型为QCARState*的属性,您可以用普通的Objective-C代码编写
someObject.qcarState = otherObject.qcarState
它是有效的。举个例子 它是如何失败的?是否有某种错误消息?更可能是从一个以上的文件中包含了头文件,包括简单的Objor的文件。您尝试过将代码> > Objc++→代码>发送到CLAN编译器吗?等等,这是否不同于导入的C++文件,Matrys.h,没有关联的CPP吗?MVC VC调用C++类的方法吗?它只是间接地引用一个包含单个C++类型(矩阵)的UIVIEW子类。