我有这个Visual C ++代码:
void kopirovaniPrvku(char pole[]){
_asm{
mov eax, offset pole;
mov bl, [eax + 2];
mov[eax + 7], bl;
mov bl, [eax + 3];
mov[eax + 9], bl;
}
}
int _tmain(int argc, _TCHAR* argv[]){
char polePrvku[10];
polePrvku[0] = 0;
polePrvku[1] = 1;
polePrvku[2] = 2;
polePrvku[3] = 3;
polePrvku[4] = 4;
polePrvku[5] = 5;
polePrvku[6] = 6;
polePrvku[7] = 7;
polePrvku[8] = 8;
polePrvku[9] = 9;
kopirovaniPrvku(polePrvku);
}
我已经有了这个功能,我想使用 OFFSET ,但是我收到了这个错误:
错误C2415:操作数类型不正确。
当我使用全局数组时,它没有问题。
我的问题是:为什么我会收到此错误?是因为参数极和 polePrvku 有不同的地址?我找到一个解决方案并不是很有趣,我只想了解它为什么不起作用。