我有一个Com对象,从DataModule设置/创建/工作。
从应用程序创建/运行/释放数据模块可以解决问题。
但是将数据模块放入DLL中是第一次正常工作,运行com对象等。但是在几次调用之后没有重新启动应用程序时,会出现此错误。
Error Message image http://darkaxi0m.name/so/errormessage.GIF
App中有一些代码,所以我不能发布所有内容, 我已经在Application和Dll中尝试过MadExcept,但没有运气。 IDE打破了一点似乎没什么帮助...
alt text http://darkaxi0m.name/so/cpubreak.gif
这是处理DataModule的代码,Application和Dll在两个测试中使用相同的函数
function GetAmount( Amount : integer; var Info: PChar): integer; stdcall;
var
tempInfo: string;
workerDM : TworkerDM;
begin
Result := 0;
workerDM := TworkerDM.Create(nil);
try
tempInfo:= Info;
Result := workerDM.GetAmount(Amount, tempInfo);
StrPCopy(Info, tempInfo);
finally
workerDM.Free;
end;
end;
我想责怪Ole对象,但它在Dll中运行良好
我甚至不知道从哪里开始寻找。
答案 0 :(得分:1)
在finally
,您正在呼叫Free
,但应致电workerDM.Free
。
答案 1 :(得分:0)
我不相信这个问题可以再回答。 该项目已被删除,产生错误的对象不再使用。
我的删除请求未得到答复。
所以现在这是我的答案。