类型转换的问题。 (100分)

  • 主题发起人 主题发起人 zlj555
  • 开始时间 开始时间
Z

zlj555

Unregistered / Unconfirmed
GUEST, unregistred user!
pChar 与 Pointer

我的COM中有一个TLIST对象,中间内容为Record类型的指针
TStudent=record
name : string;
sex : string;
end;
pStudent =^TStudent;
var
studentsList= TList;
对外提供调用/修改对象的方法。
procedure getName(AName : string):pChar //就是说我需要把Pointer的值按PChar返回。
begin
...
result := StudentsList.Items[1];//返回一个Record的指针,对吗?????
end;
客户端
我把以上的值加入到TreeNode的Data属性中:
TreeNode.data := getName('zlj');//这样对吗????

pStudent(TreeNode.Data)^.Name := 'zlj'//执行这条语句时没问题,但当程序退出会
出内存方面的错误,

这使我想到了以前的一个程序就是:如果DLL返回的类型为Pointer(指内字符串),但当我
在客户端使用时:String(abc) //abc为Pointer类型不行,必须String(Pointer(abc));
 
错误的提示是什么
 
procedure EditStudent(AStudent : Variant);
你定义的方法有问题,用上面的吧,如果要访问数据的话
AStudent[0] := ....
AStudent[1] := ....
......
 
由于我排除了一些问题,所以问题已经修改,请大家对问题进行讨论。
 
收你的mail吧,我给你答案了。
 
接受答案了.
 
后退
顶部