一个TList指针问题.昨天弄了一晚上都没有办法搞定,请高手帮忙.

FeiXue_AL 2006-12-26 10:30:18
昨天弄了一晚上都没有办法搞定,希望高手能帮一下.
我是用dll扩展exe功能时出的问题.
在exe里有一个TAbc类,
TAbc = record
str: string;
lList: TList;
end;
abc : TAbc;
我用dll钩子挂钩到exe上,用定义的指针操作exe的abc.如下
TDll = record
str: string;
lList: TList;
end;
Dll : ^TDll;
我用dll指针来操作exe的abc.
使用
dll^str := '123';
可以正确操作abc类中的str,但使用dll^lList.Add(Point)就出错.
地址绝对正确 dll^lList.count也可以正确读取.但就是不能 add.
请高手帮一下.

exe中的 List 是创建过的 abc.lList:= TList.Create; 我在dll中是用指针操作,不再需要创建了吧.
...全文
198 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
FeiXue_AL 2006-12-26
  • 打赏
  • 举报
回复
非常感谢你的回复,但我在操作str时后是正确的.只有操作lList.add的时候是错误的.
我觉得是不是TList.Create创建的时候有问题,是否还要给指针指定这个TList.Create?
王集鹄 2006-12-26
  • 打赏
  • 举报
回复
AnsiString(string)本身就是一个指针类型,存储空间是动态的

TAbc = record
str: ShortString; // size: 256
lList: TList;
end;

16,747

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧