Oc和c++混编的一些小问题
2016-11-28 本文已影响197人
光明程辉
注意:
一些同学在使用网上下载的demo或视频教学的demo等,都是直接打开,有时候会出现莫名其妙的错,代码都一模一样啊!!!怎么还是错!
因为cocos2d-x会记录你的工程文件目录或者你的系统和比人的不一样32或64位等,所以,在你打开别人的项目之前,你最好创建一个新的工程,然后,复制过来,就可以了。在window平台还要去到proj.win32 下的Debug.win32目录下删掉所有文件就可以了。
在一些老的ios项目 或 cocos2d游戏,这个Oc和C++混编你一定会遇到的。相信你
![](https://img.haomeiwen.com/i1197386/b2a1c41ecb166f4e.png)
把.m 文件改成 .mm 文件
![](https://img.haomeiwen.com/i1197386/23696883c058cd8a.png)
![](https://img.haomeiwen.com/i1197386/606ef5f9fc322937.png)
左边的 .m文件 说明只支持 Oc 和 C语言,这里我的Hello.cpp 是C++的,这是无法使用的。所以,我们怎么办呢?项目需要啊!!!
解决很简单:只需在.m 文件后修改为 .mm 文件就可以了。此外最好也要把#import "Hello.hpp" 改为C++ 的形式。#include "Hello.hpp"。
![](https://img.haomeiwen.com/i1197386/18e0dfd3d7eead09.png)
![](https://img.haomeiwen.com/i1197386/1e2d5e6a267f7a91.png)
在c++ 里如何使用 Oc 代码?
新建一个OC文件,.h文件都注释掉,写上自定义方法:
![](https://img.haomeiwen.com/i1197386/056ea5dcc7816041.png)
在点. 文件里写上:
#import <Foundation/Foundation.h> 和 自定义的方法
把.m改成.mm,这样就创建成功了.
![](https://img.haomeiwen.com/i1197386/f027297a194c9375.png)
被c++ 调用成功!!!
![](https://img.haomeiwen.com/i1197386/14d896e076445ab3.png)
方法没用实现:
![](https://img.haomeiwen.com/i1197386/8ec8d3e5e5b2f816.png)