|
소스 내용만으론 Form 이 두개 뜨지 않을것 같은데...
CreateMmcForm을 두 번 호출하거나
dll의 다른 함수에서 TFormMmc 의 생성자를 호출하거나 하는 상황인걸로 예상 됩니다.
어느 시점에 어떻게 dll 의 함수를 호출하는지 알아야 될 것 같네요.
FreeMmcDiagram() 함수 내용도요.
funji 님이 쓰신 글 :
: Q&A게시판에서 DLL에서 폼을 생성후에 실행파일을 통해
: 폼을부러오는 게시물을 활용하여 소스를 짜보았습니다.
: 저는 DLL에서 폼을 생성후에 실행파일에 panel위에 올리려고하는데..
: 프로그램을 실행을시키면 폼이 두개 생성을 하게 되더라구요..ㅠㅠㅠ
: <Mmc.DLL>
: void __stdcall CreateMmcForm(HWND hPnl, HWND HApp)
: {
: Application->Handle = HApp;
:
: //exe 생성 후 붙이기
: sPath = ExtractFilePath(Application->ExeName);
:
: FormMmc = new TFormMmc(0);
:
: SetParent(FormMmc->Handle, hPnl);
:
: FormMmc->Show(); <<============요때 폼이 하나가 뜹니다.
: }
: //---------------------------------------------------------
: void __stdcall CloseMmcForm()
: {
: if (FormMmc)
: {
: FreeMmcDiagram();
: FormMmc->Close();
: }
: }
: FormMmc->Show(); 폼이 뜨길래
:
: 실행 파일 프로그램 종료시에 FormMmc->Close(); 이 부분을 적었는데도 남아있더라구여...
: 그런데 더 희안한것은 실행파일에 panel위에 FormMmc이 올라오기는 합니다.
: 이 정체 불명한 폼 제가 어디서 잘못 접근을 한건지 전혀 알수가 없네요ㅠㅠㅠㅠ
: 도와주세여ㅠㅠㅠㅠ
|