返回const指针会在虚幻引擎中引发编译错误?

问题描述 投票:0回答:2

我在C ++方面并不是很出色,所以如果这只是一个愚蠢的错误,我要先抱歉。我试图将XMLParser暴露给虚幻引擎中的蓝图

使用VS,代码不会内联显示任何编译错误。 (即,任何地方都没有红线)但是,当我尝试编译时,出现以下错误:

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

有关代码行:

UFUNCTION(BlueprintCallable)
        const FXmlNode* GetRoot();

我使用XMLParser模块更新了Build.cs,可以访问各种XML类内部的函数。但是,我发现编译器无法识别它很奇怪。有谁知道这可能是什么原因?

任何帮助将不胜感激。

c++ unreal-engine4
2个回答
0
投票

解决这个问题的方法相当简单,我实际上对此进行了一点思考。 XmlNode类不是UCLASS类型,因此我无法在Blueprints中返回非U *类型,这是一个问题。 (因此,为什么现在该错误才有意义)

相反,我为XmlNode类本身创建了另一个包装器类,并使其成为UCLASS类型。从那里开始,包装XmlNode类非常容易,因为它主要是返回String和其他节点引用。


-1
投票

UE4中的反射系统不支持指向USTRUCTS的指针。您可以在代码中使用它,但无法将USTRUCT指针公开给蓝图,必须按值或const引用返回struct

© www.soinside.com 2019 - 2024. All rights reserved.