2010-08-06 2 views
0

Data Object에서 Com 객체, setup/create/working이 있습니다.DLL에 Ole이있는 Delphi 응용 프로그램 오류

응용 프로그램에서 Datamodule을 생성/실행/해제하는 것이 문제없이 작동합니다.

하지만 datamodule을 DLL에 넣는 것은 처음에는 잘 작동하지만 com 개체 등을 실행하면됩니다.하지만 응용 프로그램을 다시 시작하지 않고 몇 번 호출하면이 오류가 나타납니다.

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

이 앱 코드의 요금 비트가, 그래서 모든 게시 어차피, 나는 행운으로, 응용 프로그램 및 DLL을 모두 MadExcept을 시도했습니다. 많은 도움을 보이지 않는 지점에서 IDE 나누기 ...

alt text http://darkaxi0m.name/so/cpubreak.gif

이이 데이터 모듈을 처리하는 코드는 동일한 기능을 모두 테스트에서 응용 프로그램과 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에 대한 복사/붙여 넣기 및 서식 지정의 희생자였습니다 –

+0

@Christopher : 문제 없음; 나는 버그를 찾기가 매우 힘들어 진 많은 실수 코드에 부딪쳤다. 코드가 그로 인해 어려움을 겪지 않았 으면 좋겠다. –