iPhone应用程序中的C ++代码

时间:2009-06-29 18:25:50

标签: c++ iphone xcode

我正在尝试使用Xcode 3.1.3从我的Cocoa Touch iPhone应用程序中使用C ++库(CLucene)。当我在iPhone模拟器中运行时,一切正常,但是当我在设备上运行时,事情会变得奇怪。似乎指针没有从Objective-C ++代码(我的应用程序)正确传递到C ++库(CLucene)。

在设备上调试app时,我可以看到作为C ++函数参数传递的const char *变量从Objective-C ++中的0x12546c0变为C ++中的0x4e。由于0x4e未指向有效的const char *,因此C ++代码失败。在模拟器中进行调试时不会发生这种情况。

我正在将C ++库直接编译到应用程序中,而不是链接到静态或动态库。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:4)

在项目的构建设置中禁用“Compile for Thumb”可以解决问题。

答案 1 :(得分:0)

在iPhone应用程序中使用C ++代码应该没有问题(我一直这样做)。

指针只是作为指针传递而没有任何解释 你确定Objective-C ++对象是一个'const char *'而不是在运行时动态转换(错误地)转换为'const char *'的其他类型吗?