虚幻引擎C++ C2440报错的问题

我在升级了Visual Studio 2022 17.9.6版本之后编译我的虚幻项目就出现了意义不明的报错

1>Building 66 actions with 2 processes...
1>[1/66] Compile SharedPCH.Engine.ShadowErrors.cpp
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(1048): error C2440: “<function-style-cast>”: 无法从“const From *”转换为“TStringConversion<TStringConvert<From,To>,128>”
1>        with
1>        [
1>            From=TCHAR
1>        ]
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(1048): note: “TStringConversion<TStringConvert<From,To>,128>::TStringConversion”: 没有重载函数可以转换所有参数类型
1>        with
1>        [
1>            From=TCHAR,
1>            To=ANSICHAR
1>        ]
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(689): note: 可能是“TStringConversion<TStringConvert<From,To>,128>::TStringConversion(const StringConv::FUnused *)”
1>        with
1>        [
1>            From=TCHAR,
1>            To=ANSICHAR
1>        ]
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(1048): note: “TStringConversion<TStringConvert<From,To>,128>::TStringConversion(const StringConv::FUnused *)”: 无法将参数 1 从“const From *”转换为“const StringConv::FUnused *”
1>        with
1>        [
1>            From=TCHAR,
1>            To=ANSICHAR
1>        ]
1>        and
1>        [
1>            From=TCHAR
1>        ]
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(1048): note: 指向的类型不相关; 转换需要 reinterpret_cast、C 样式强制转换或带圆括号的函数样式强制转换
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(737): note: 或    “TStringConversion<TStringConvert<From,To>,128>::TStringConversion(FromRangeType &&)”
1>        with
1>        [
1>            From=TCHAR,
1>            To=ANSICHAR
1>        ]
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(698): note: 或    “TStringConversion<TStringConvert<From,To>,128>::TStringConversion(const SrcBufferType *,int32)”
1>        with
1>        [
1>            From=TCHAR,
1>            To=ANSICHAR
1>        ]
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(677): note: 或    “TStringConversion<TStringConvert<From,To>,128>::TStringConversion(const SrcBufferType *)”
1>        with
1>        [
1>            From=TCHAR,
1>            To=ANSICHAR
1>        ]
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(1048): note: 尝试匹配参数列表“(const From *)”时
1>        with
1>        [
1>            From=TCHAR
1>        ]
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(1048): note: 模板实例化上下文(最早的实例化上下文)为
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Misc\SecureHash.h(75): note: 查看对正在编译的函数 模板 实例化“auto StringCast<ANSICHAR,128,TCHAR>(const From *)”的引用
1>        with
1>        [
1>            From=TCHAR
1>        ]
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(1048): error C2440: “<function-style-cast>”: 无法从“const From *”转换为“TStringConversion<TStringConvert<From,To>,128>”
1>        with
1>        [
1>            From=ANSICHAR
1>        ]
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(1048): note: “TStringConversion<TStringConvert<From,To>,128>::TStringConversion”: 没有重载函数可以转换所有参数类型
1>        with
1>        [
1>            From=ANSICHAR,
1>            To=TCHAR
1>        ]
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(689): note: 可能是“TStringConversion<TStringConvert<From,To>,128>::TStringConversion(const StringConv::FUnused *)”
1>        with
1>        [
1>            From=ANSICHAR,
1>            To=TCHAR
1>        ]
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(1048): note: “TStringConversion<TStringConvert<From,To>,128>::TStringConversion(const StringConv::FUnused *)”: 无法将参数 1 从“const From *”转换为“const StringConv::FUnused *”
1>        with
1>        [
1>            From=ANSICHAR,
1>            To=TCHAR
1>        ]
1>        and
1>        [
1>            From=ANSICHAR
1>        ]
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(1048): note: 指向的类型不相关; 转换需要 reinterpret_cast、C 样式强制转换或带圆括号的函数样式强制转换
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(737): note: 或    “TStringConversion<TStringConvert<From,To>,128>::TStringConversion(FromRangeType &&)”
1>        with
1>        [
1>            From=ANSICHAR,
1>            To=TCHAR
1>        ]
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(698): note: 或    “TStringConversion<TStringConvert<From,To>,128>::TStringConversion(const SrcBufferType *,int32)”
1>        with
1>        [
1>            From=ANSICHAR,
1>            To=TCHAR
1>        ]
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(677): note: 或    “TStringConversion<TStringConvert<From,To>,128>::TStringConversion(const SrcBufferType *)”
1>        with
1>        [
1>            From=ANSICHAR,
1>            To=TCHAR
1>        ]
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(1048): note: 尝试匹配参数列表“(const From *)”时
1>        with
1>        [
1>            From=ANSICHAR
1>        ]
1>E:\ep\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(1048): note: 模板实例化上下文(最早的实例化上下文)为
1>E:\ep\UE_5.0\Engine\Source\Runtime\TypedElementFramework\Public\Elements\Framework\TypedElementData.h(64): note: 查看对正在编译的函数 模板 实例化“auto StringCast<TCHAR,128,ANSICHAR>(const From *)”的引用
1>        with
1>        [
1>            From=ANSICHAR
1>        ]
1>D:\visvual IDE\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets(44,5): error MSB3073: 命令“E:\ep\UE_5.0\Engine\Build\BatchFiles\Build.bat leaningEditor Win64 Development -Project="E:\360MoveData\Users\dong\Documents\Unreal Projects\leaning\leaning.uproject" -WaitMutex -FromMsBuild”已退出,代码为 6。
1>已完成生成项目“leaning.vcxproj”的操作 - 失败。
========== 生成: 0 成功,1 失败,0 最新,0 已跳过 ==========
========== 生成 于 19:04 完成,耗时 21.544 秒 ==========


虚幻C++编译器报错

我随后去虚幻论坛和Visual的论坛上查找了这个问题,得出几种办法:

1.回滚Visual版本

Developer Community  VS论坛的相关地址

但如果你用的是5.3的虚幻引擎,回滚的话就无法使用Visual Studio

2.通过下载文件来解决问题

这里附上虚幻论坛解决了这个报错的链接 Error c2440 - #2 by AnuragJainWSP - Getting Started & Setup - Epic Developer Community Forums 

https://github.com/ydgros/UE_VS2022-17.9/ 这个是解决问题的文件(提问的人说这个有效

3.可能是自己的最近改动过的代码里出了问题(编译器不会告诉是哪一行)

我是在注释部分掉没用的代码之后才去进行升级版本的,我发现报错后尝试恢复到我改动前的代码,发现可以运行,所以要注意下自己是不是错误删除一些代码。

  • 12
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值