C++内联ASM操作数大小冲突错误
我有两个结构,第一个结构+0x08指向第二个结构,我想读取第二个结构+0x1C,它是一个字符串数组字符* 编译器在此行中给出了操作数大小冲突错误: 在第一步中,我成功地得到了第二个结构的指针,唯一的问题是这个错误 出什么事了? 编辑:C++内联ASM操作数大小冲突错误,c++,inline-assembly,C++,Inline Assembly,我有两个结构,第一个结构+0x08指向第二个结构,我想读取第二个结构+0x1C,它是一个字符串数组字符* 编译器在此行中给出了操作数大小冲突错误: 在第一步中,我成功地得到了第二个结构的指针,唯一的问题是这个错误 出什么事了? 编辑: 通过更改CHAR cRet[256]={0}解决的问题;使…变傻 可能重复Try mov eax[ds:ecx+0x1C]错误实际上在它后面的行上。您正在将32位寄存器存储到8位数组中element@KerrekSB现在我也犯了这个错误。错误C2422:“第二个操
通过更改CHAR cRet[256]={0}解决的问题;使…变傻 可能重复Try mov eax[ds:ecx+0x1C]错误实际上在它后面的行上。您正在将32位寄存器存储到8位数组中element@KerrekSB现在我也犯了这个错误。错误C2422:“第二个操作数”中的非法段重写在我们知道您要执行的操作之前,我们无法说出解决方案。现在,您正试图将32位数据存储到8位内存中。你真的只想存储8位吗?是否要存储到32位内存中?是否要复制字符串?
CHAR cRet[256] = {0};
__asm
{
push SomeHandle;
mov ecx, 1;
call SomeFunc;
mov ecx, eax;
call AnotherFunc;
mov ecx,dword ptr ds:[eax+0x08];
mov eax,dword ptr ds:[ecx+0x1C];
mov cRet, eax;
}
mov cRet, eax;