2010-08-06 86 views
0

我有一个Com对象,安装/创建/从DataModule工作。DELPHI应用程序错误与DLL在一个DLL

创建/运行/从应用程序释放Datamodule可以解决问题。

但将数据模块放入DLL中,第一次运行正常,运行com对象等。但在重新启动应用程序后出现几次调用后,出现此错误。

Error Message image http://darkaxi0m.name/so/errormessage.GIF

还有就是在App代码票价位,所以我不能张贴这一切, 我已经试过MadExcept同时在应用程序和DLL,没有运气。在一个点的IDE休息似乎并没有太大的帮助......

alt text 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

我不知所措,甚至想从哪里开始寻找。

回答

0

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

我的删除请求没有回复。

所以这是现在我的答案。

1

finally中,您致电Free,但应拨打workerDM.Free

+0

对不起,这是一个复制/粘贴和格式化为stackoverflow受害者 – 2010-08-07 14:52:55

+0

@Christopher:没问题;我遇到了很多真实世界的代码,这种方式错了,导致很难发现错误。很高兴你的代码不会受到它的影响。 – 2010-08-17 15:43:11