Cocos2dx, импортирующий платформу QuartzCore, выдает ошибку (ссылка на точку, прямоугольник, размер неоднозначна)

Я работаю над игрой cocos2dx, используя c ++. Когда я импортирую фреймворк Quartzcore в свой заголовочный файл, после сборки он дает мне более 20 ошибок, говорящих, что Point неоднозначен. ошибка возникает только тогда, когда я импортирую кварцевый файл, написав этот «#import».
Я связал фреймворк в «связь с бинарным», поэтому не должно быть проблемы со связыванием.
любая помощь приветствуется.
Благодарю.

0

Решение

Если вы работаете над игрой на С ++ в кокосах, вы должны быть осторожны, чтобы отделить ваш код Objective-C от вашего кода C ++.

Самый простой способ сделать это — использовать только #import в ваших файлах .mm (которые могут содержать как код C ++, так и код Objective-C), чтобы гарантировать, что вы не сможете получить директивы target-C в своей простой стороне c ++.

Тем не менее, эта ошибка не должна возникать, если вы правильно используете пространства имен в своем коде c ++: хотя среда Quartz, будучи Objective-C, определяет «точку» и т. Д. В глобальном пространстве имен, Cocos2d-x определяет ее как точку в пространстве имен cocos2d.

Таким образом, если вы поместите весь код своего приложения в пространство имен и импортируете в него пространство имен cocos, вы избежите столкновения глобального пространства имен, которое вы получаете.

Например, в моем приложении я использую пространство имен вокруг всего моего кода на C ++, примерно так:

namespace myapp {
using cocos2d;

class MyClass {
public:
Point cocosPoint;
::Point quartzPoint;
};
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]