Q&A

  • MDI에서 Dll로 MDIChild 윈도를 만들었는데 종료가...?
메인폼을 그냥 실행후 종료하면 잘 되는데 MDIChild 폼을 만들어주는 Dll의 이 함수를 실행해서 MDIChild 폼을 만든후 닫고 메인폼을 닫으면 화면에서는 사라지는데 프로세스는 남아있습니다. 후후 어떻하죠?
각각의 소스는 아래에 있고 고수님들 부탁합니다.

Dll Source
procedure GetWindow(App: TApplication); cdecl;
begin
  DllApp:= Application;
  Application:= App;
  CForm1:= TCForm1.Create(App);
end;

procedure FreeWindow; cdecl;
begin
  CForm1.Close;
end;

procedure TCForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:= caFree;
end;
===============================================================
Main Source
procedure TForm1.Button1Click(Sender: TObject);
begin
  GetW(Application);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  FreeW;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  Dll:= LoadLibrary('FormDll.dll');
  GetW:= GetProcAddress(Dll, 'GetWindow');
  FreeW:= GetProcAddress(Dll, 'FreeWindow');
  F:= nil;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  FreeLibrary(Dll);
end;

0  COMMENTS