昨天弄了一晚上都没有办法搞定,希望高手能帮一下.
我是用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中是用指针操作,不再需要创建了吧.
我是用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中是用指针操作,不再需要创建了吧.
str: ShortString; // size: 256
lList: TList;
end;
我觉得是不是TList.Create创建的时候有问题,是否还要给指针指定这个TList.Create?