Q&A

  • DLL에서 FreeLibrary시 에러가
고수님들. 메모리 해제시 에러가 나는데 원인이 무엇이며 해결책이
뭔지 알수 있을까요..
정말 너무나 급하거든요. 꼭 좀 부탁 드립니다.

모달폼에서는 freelibrary시 에러가 발생되지 않는데
childForm에선 에러가 발생됩니다.  꼭 좀 갈켜주세요..


procedure TFM_B01000W1.MI_B01101W1Click(Sender: TObject);
Type
TProc = Procedure(AParentApplication : TApplication;AParentForm: TForm);StdCall;
var
SysLibHandle : THandle;
Proc : TProc;
begin
if SysLibHandle <> 0 then Exit;  // SysLibHandle은 폼생성시 초기화

TRY
  SysLibHandle:=LoadLibrary(PChar('DLLCommonDll.dll'));
  if SysLibHandle = HINSTANCE_ERROR then  //에러가 발생한면
    raise EDLLLoadError.Create('"SystemInfo.DLL"을 열수가 없습니다.');
  @Proc:=GetProcAddress(SysLibHandle,'Call_MDIChild');
  if @Proc <> nil then Proc(Application, Self)  ;
  else
    raise EDLLLoadError.Create('"SystemInfo.DLL"을 볼수 없습니다. 에러:'+IntToStr(GetLastError));}
finally
  FreeLibrary(SysLibHandle);  /*<-----------------------이것만 추가하면 에러가 발생*/
   /* 그러나 없으면 에러가 발생되지 않음*/
END;
SysLibHandle:=0;

end;
0  COMMENTS