我用
var pch:pchar;getmem(pchar,50);
listview:=listview.items.add;
listview.data:=Pch;////
然后调用
pch2:pchar;pch2:=listview.selected.data;showmessage(strpas(pch2));
出现乱码。为什么。
var pch:pchar;getmem(pchar,50);
listview:=listview.items.add;
listview.data:=Pch;////
然后调用
pch2:pchar;pch2:=listview.selected.data;showmessage(strpas(pch2));
出现乱码。为什么。
如果不是当然会出现乱麻。如果是,那么你改为:
ShowMessage(String(pch2));
我是用add方法加的
但是
showmessage(string(pch2)):
还是出现乱码
getmem(pchar,50); //应该是pch
listview:=listview.items.add;
listview.data:=Pch;你看~~~pch被分配内存了~~~但是getmem并不会帮你将分配的内存清0。你需要使用FillChar或者ZeroMemory来设置pch所指向内存区域每个字节的初始值。不初始当然指向的是乱麻。
况且你分配内存之后并没有设定pch所指向的内存区域的值。这就是为什么出现乱码的问题了