我正在使用c ++开发cocos2dx游戏。什么时候我将quartzcore框架导入到我的头文件中,在构建它之后给了我20多个错误,说Point不明确。只有在我通过编写“#import”导入石英文件时才会出现错误。 我已经在“链接二进制”链接框架,所以不应该有链接问题。 任何帮助表示赞赏。 感谢。
答案 0 :(得分:0)
如果您正在使用cocos进行c ++游戏,则需要小心将Objective-C代码与C ++代码进行分区。
最简单的方法是在.mm文件中使用#import(可以包含C ++和Objective-C代码),以确保您无法在普通的c ++方面获得Objective-C指令
即便如此,如果您正确使用c ++代码中的命名空间,也不会发生此错误:虽然Quartz框架 - 在Objective-C中定义了全局命名空间中的“Point”等,但Cocos2d-x将其定义为cocos2d名称空间。
因此,如果将所有应用程序代码放在命名空间中,并将cocos命名空间导入到该命名空间中,则可以避免遇到全局命名空间冲突。
例如,在我的应用程序中,我在所有c ++代码中使用了一个命名空间,如下所示:
namespace myapp {
using cocos2d;
class MyClass {
public:
Point cocosPoint;
::Point quartzPoint;
};
}