在DLL中使用Ole的Delphi应用程序错误

时间:2010-08-06 01:32:31

标签: delphi dll delphi-7 comobject

我有一个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中运行良好

我甚至不知道从哪里开始寻找。

2 个答案:

答案 0 :(得分:1)

finally,您正在呼叫Free,但应致电workerDM.Free

答案 1 :(得分:0)

我不相信这个问题可以再回答。 该项目已被删除,产生错误的对象不再使用。

我的删除请求未得到答复。

所以现在这是我的答案。