1、char* chname="";
2、CString csname;
3、_asm{
mov eax,itempCounter
add eax,0x16c
mov eax,[eax]
add eax,0x54
mov eax,[eax]
mov eax,[eax]
mov chname,eax
}
4、 csname.Format("%s",chname);//换成%s总崩溃,何解?
以上4步后崩溃!!!!%s换成%x、%d都没事!cstringformat%s
2、CString csname;
3、_asm{
mov eax,itempCounter
add eax,0x16c
mov eax,[eax]
add eax,0x54
mov eax,[eax]
mov eax,[eax]
mov chname,eax
}
4、 csname.Format("%s",chname);//换成%s总崩溃,何解?
以上4步后崩溃!!!!%s换成%x、%d都没事!cstringformat%s
mov chname,eaxchname 是 一个 串 (带 0)
eax实际上应该是个数值型,不是字符串,虽然你定义的chname是字符型,你单步执行看看eax的值就知道了.
[eax]这个地方到底是否有数据呢?你给出的程序看不出来。毕竟你的chname指向的是常量区的空字符串。
你是不是应该换成一个字符数组呢?
CString csname = chname;
这一步没问题吗?chname指向一个常量地址,你却试图修改他的内容,这会崩溃的