Click here to Close
打印

[APP开发] 學習怎樣在 iPhone/iPod Touch 上開發自制遊戲全記錄

楼主真厉害!请问哪里能找到iphone的混合c++和objC的实例代码?

回复 32楼 的帖子

一个读书笔记性质的好帖,感谢给出这么多源码和链接。

TOP

關於混合 C/C++ 和 ObjC

混合c++ 和 objc, 主要是當想要用 c++ 的 class 時, 一定要放到 .mm 檔里.

另外, 在 .cpp 檔案里, 一定不能夠include 任何系統有關的 .h 檔. 當要用到一些系統的東西, 要自己寫些wrapper function. 比如你想在 c/c++ class 里用 fopen 來打開一個檔案, 怎麼拿檔案的全路徑(FULL PATH)呢?

在我的一個叫 wrapper.m 的文檔里, 我寫了一個 GetPath 的 function:
复制内容到剪贴板
代码:
const char *GetPath(const char *s)
{
        NSString *name = [[NSString alloc] initWithUTF8String: s];
        NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:nil];
        
        return [path UTF8String];
        
}
在 c/c++ 檔里, 相關的設定:
复制内容到剪贴板
代码:
extern "C" const char *GetPath(const char *s);
當我想在 c/c++ 原碼里打開一個檔案時, 我就用:
复制内容到剪贴板
代码:
const char *path = GetPath(filename);
FILE* file = fopen(path, "rb");
[ 本帖最后由 dr_watson 于 2008-4-18 09:47 编辑 ]
支持楼主!................................
遥想光明顶上,碧水潭畔,紫衫如花,长剑胜雪,不知倾倒了多少英雄豪杰。
强烈支持技术贴。
支持技术贴。
等我装了MAC再说
佩服!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
支持支持!!!!!

TOP

谢谢 楼主  windows下的iphone开发都看得楼主的Demo
深公网安备案证字第 4403101901155 号