繁体   English   中英

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

[英]Returning a const pointer throws a compile error in Unreal Engine?

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

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

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

有问题的代码行:

UFUNCTION(BlueprintCallable)
        const FXmlNode* GetRoot();

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

任何帮助将不胜感激。

一旦我真正考虑了一下,解决这个问题就相当简单了。 XmlNode class 不是 UCLASS 类型,我无法在蓝图中返回非 U* 类型,这是一个问题。 (因此为什么这个错误现在有意义)

相反,我为 XmlNode class 本身创建了另一个包装器 class 并使其成为 UCLASS 类型。 从那里包装 XmlNode class 相当容易,因为它主要返回字符串和其他节点引用。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM