gpt4 book ai didi

c++ - 错误 C2440 : 'type cast' : cannot convert from 'std::_Vector_iterator<_Ty,_Alloc>' to 'DWORD'

转载 作者:太空宇宙 更新时间:2023-11-04 12:23:44 27 4
gpt4 key购买 nike

我收到以下错误:

error C2440: 'type cast' : cannot convert from 'std::_Vector_iterator<_Ty,_Alloc>' to 'DWORD'
with
[
_Ty=LPCSTR ,
_Alloc=std::allocator<LPCSTR >
]
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called

我使用的是 Visual Studio 2005。这适用于较旧的 Visual Studio,但不适用于这个。这是导致错误的代码:

std::vector<LPCSTR> factions;

...

*(DWORD*)(offset+0x571) = (DWORD)factions.begin(); <- error here

我该如何解决这个问题?

最佳答案

您的目标是消除错误还是使程序正确?在后一种情况下,您必须告诉我们您实际想要做什么。

既然你没有,我就得猜了。我的猜测是您想将 vector 中第一个 LPCSTR 的地址转换为 DWORD。如果你的代码在以前版本的 VS 中工作,这是更有可能的情况。如果我是对的,试试这个:

*(DWORD*)(offset+0x571) = (DWORD)(&factions.front());

或者这个:

*(DWORD*)(offset+0x571) = (DWORD)(&*factions.begin());

或者这个:

*(DWORD*)(offset+0x571) = (DWORD)(&factions[0]);

如果要将存储在 vector 前面的 LPCSTR 转换为 DWORD,请执行以下操作:

*(DWORD*)(offset+0x571) = (DWORD)factions.front();

或者这个:

*(DWORD*)(offset+0x571) = (DWORD)(*factions.begin());

或者这个:

*(DWORD*)(offset+0x571) = (DWORD)(factions[0]);

关于c++ - 错误 C2440 : 'type cast' : cannot convert from 'std::_Vector_iterator<_Ty,_Alloc>' to 'DWORD' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3558589/

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