gpt4 book ai didi

c++ - 使用 C++ 内联 UnrealEngine UE_LOG 宏

转载 作者:行者123 更新时间:2023-11-28 05:21:31 25 4
gpt4 key购买 nike

我是虚幻引擎的新手,我正在尝试声明一个 inline 函数,如下所示:

void inline Print(const char* s) {
UE_LOG(LogTemp, Warning, TEXT("%s"), s);
}

为了避免每次调用UE_LOG时都带有LogTempWarning

当调用例如 Print("Hello") 时,输出是 LogTemp:Warning: 效汬o

我的猜测与 ASCII 编码有关,但我真的不确定。

我还尝试使用 reinterpret_cast 如下:

void inline Print(const char* s) {
UE_LOG(LogTemp, Warning, TEXT("%s"), reinterpret_cast<const TCHAR *>(s));
}

但最终得到了相同的结果。

我想知道正确的做法(我不想使用 MACRO 而不是内联函数),如果对乱码输出的原因有一个简单的解释,它也会非常有用.

最佳答案

UE_LOG不能给const char*,它需要const TCHAR*,也不能是以这种方式重新解释_cast,它需要转换,但只需让 FString 为您处理脏工作。我想你可以选择以下之一:

1.

inline void Print(const FString& s)
{
UE_LOG(LogTemp, Warning, TEXT("%s"), *s);
}

2.

inline void Print(const char* s)
{
FString str(s);
UE_LOG(LogTemp, Warning, TEXT("%s"), *str);
}

关于c++ - 使用 C++ 内联 UnrealEngine UE_LOG 宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41407427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com