0

我有一个 Com 对象,从 DataModule 设置/创建/工作。

从应用程序创建/运行/释放数据模块没有问题。

但是第一次将数据模块放入 DLL 工作正常,运行 com 对象等。但是在没有重新启动应用程序的情况下进行了几次调用后,出现了这个错误。

错误信息图片 http://darkaxi0m.name/so/errormessage.GIF

应用程序中有一些代码,所以我不能全部发布,我在应用程序和 Dll 中都尝试了 MadExcept,但没有运气。IDE 在似乎没有多大帮助的地方中断......

替代文字 http://darkaxi0m.name/so/cpubreak.gif

这是处理 DataModule 的代码,在两个测试中的应用程序和 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 中运行良好

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

4

2 回答 2

1

在中finally,你在打电话Free,但应该打电话workerDM.Free

于 2010-08-06T08:24:21.097 回答
0

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

我的删除请求没有得到答复。

所以这就是我现在的答案。

于 2011-09-06T02:01:02.500 回答