Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++内联ASM操作数大小冲突错误_C++_Inline Assembly - Fatal编程技术网

C++内联ASM操作数大小冲突错误

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:“第二个操

我有两个结构,第一个结构+0x08指向第二个结构,我想读取第二个结构+0x1C,它是一个字符串数组字符*

编译器在此行中给出了操作数大小冲突错误:

在第一步中,我成功地得到了第二个结构的指针,唯一的问题是这个错误

出什么事了? 编辑:
通过更改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;