首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UE4数据表结构错误

UE4数据表结构错误
EN

Stack Overflow用户
提问于 2017-08-01 20:20:50
回答 3查看 7.2K关注 0票数 1

我正在学习有关CSV表条目的Packt教程。本教程要求我a)创建一个新的Actor类,b)命名为TestCustomData,c)用以下代码替换新生成的TestCustomData.h的内容:

代码语言:javascript
复制
#pragma once

#include "TestCustomData.generated.h"

USTRUCT(BlueprintType)
struct FTestCustomData : public FTableRowBase
{
GENERATED_USTRUCT_BODY()

UPROPERTY( BlueprintReadOnly, Category = "TestCustomData" )
int32 SomeNumber;

UPROPERTY( BlueprintReadOnly, Category = "TestCustomData" )
FString SomeString;
};

但是,TestCustomData文件无法编译,输出了以下日志:

代码语言:javascript
复制
Error f:\unreal\ue4 assignments\ue4_projectrpg\source\ue4_projectrpg\TestCustomData.h(5) : error C2504: 'FTableRowBase': base class undefined
Info Compiling game modules for hot reload
Info Parsing headers for UE4_ProjectRPGEditor
Info   Running UnrealHeaderTool "F:\Unreal\UE4 Assignments\UE4_ProjectRPG\UE4_ProjectRPG.uproject" "F:\Unreal\UE4 Assignments\UE4_ProjectRPG\Intermediate\Build\Win64\UE4_ProjectRPGEditor\Development\UE4_ProjectRPGEditor.uhtmanifest" -LogCmds="loginit warning, logexit warning, logdatabase error" -Unattended -WarningsAsErrors -installed
Info Reflection code generated for UE4_ProjectRPGEditor in 3.4146568 seconds
Info Performing 4 actions (4 in parallel)
Info TestCustomData.cpp
Info UE4_ProjectRPG.generated.cpp
Error f:\unreal\ue4 assignments\ue4_projectrpg\source\ue4_projectrpg\TestCustomData.h(6) : error C3646: 'Super': unknown override specifier
Error f:\unreal\ue4 assignments\ue4_projectrpg\source\ue4_projectrpg\TestCustomData.h(6) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Error F:\Unreal\UE4 Assignments\UE4_ProjectRPG\Source\UE4_ProjectRPG\TestCustomData.h(5) : error C2504: 'FTableRowBase': base class undefined
Error F:\Unreal\UE4 Assignments\UE4_ProjectRPG\Source\UE4_ProjectRPG\TestCustomData.h(6) : error C3646: 'Super': unknown override specifier
Error F:\Unreal\UE4 Assignments\UE4_ProjectRPG\Source\UE4_ProjectRPG\TestCustomData.h(6) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Info ERROR: UBT ERROR: Failed to produce item: F:\Unreal\UE4 Assignments\UE4_ProjectRPG\Binaries\Win64\UE4Editor-UE4_ProjectRPG-3031.dll
Info Total build time: 6.88 seconds (Local executor: 0.00 seconds)

我对StackOverflow和C++在UE4方面相当陌生,如果能提供任何帮助,我们将不胜感激。任何反馈意见,以改善我的问题也是欢迎的!提前谢谢你的帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-08-06 19:54:36

我被困在同一个地方,这个问题解决了:我把资产命名为"MyActor2“和结构"ThisNewStructure”,所以有一些小的区别。

我认为基本包括Datatable.h和“公众”,这就成功了。

头文件:

代码语言:javascript
复制
#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "Runtime/Engine/Classes/Engine/DataTable.h"
#include "MyActor2.generated.h"

USTRUCT(BlueprintType)
struct FThisNewStructure : public FTableRowBase
{
    GENERATED_USTRUCT_BODY()
public:

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = test)
        int32 SomeNumber;
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = test)
        FString SomeString;

};

cpp:

代码语言:javascript
复制
#include "MyActor2.h"

然后编译成功。我不得不关闭/重新打开VS & UE的编辑器,以了解新的结构。

票数 1
EN

Stack Overflow用户

发布于 2017-09-13 03:32:03

可能有点晚了,但我自己也碰上了。有时候你会有一个自动抓取FTableRowBase的包含,但有时一个类没有一个能够调用它的头。在这种情况下:

代码语言:javascript
复制
#pragma once

#include "Engine/DataTable.h"//this is where FTableRowBase is declared.
#include "TestCustomData.generated.h"

struct FFoo : FTableRowBase
{
    GENERATED_USTRUCT_BODY()
    public:
       the rest of your class...

我希望这能帮上忙!

票数 0
EN

Stack Overflow用户

发布于 2018-03-30 22:26:57

谢谢你的帮助,我在同一个教程中解决了同样的问题。显然,您不需要将TestCustomData重命名为MyActor2,只需在"GENERATED_USTRUCT_BODY()“之后添加"public:”行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45447012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档