Возвращение константного указателя приводит к ошибке компиляции в Unreal Engine? - PullRequest
0 голосов
/ 09 апреля 2020

Я не очень хорош в C ++, поэтому заранее прошу прощения, если это просто глупая ошибка. Я пытался представить XMLParser для чертежей в Unreal Engine

. Используя VS, код не показывает никаких встроенных ошибок компиляции. (т.е. нигде нет красных линий) Однако, когда я пытаюсь скомпилировать, я получаю следующую ошибку:

Unrecognized type 'FXmlNode' - type must be a UCLASS, USTRUCT or UENUM

Строка кода:

UFUNCTION(BlueprintCallable)
        const FXmlNode* GetRoot();

Я обновил сборку .cs с модулем XMLParser и может обращаться к функциям внутри различных классов XML. Однако я нахожу странным, что компилятор не распознает это. Кто-нибудь знает, что может быть причиной этого?

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Решение этого было довольно простым, когда я немного подумал об этом. Класс XmlNode не был типом UCLASS, и я не могу вернуть не-U * тип внутри Blueprints, что было проблемой. (Следовательно, почему ошибка имеет смысл сейчас)

Вместо этого я создал другой класс-оболочку для самого класса XmlNode и сделал его типом UCLASS. Оттуда было довольно легко обернуть класс XmlNode, поскольку он в основном возвращал строки и другие ссылки на узлы.

0 голосов
/ 09 апреля 2020

Система отражения в UE4 не поддерживает указатели на USTRUCTS. Вы можете использовать его в своем коде, но невозможно представить указатели USTRUCT для Blueprints, вы должны вернуть struct по значению или по константной ссылке

...