2010-08-06 106 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