|
여기 계신분덜은 전부 빌더에 고수인것 같군요. 왜 요길 오늘에서야 알았을까??
전 한참 빌더를 배우고 있는데요.
메인창에서 dll의 함수를 호출하고 데이터를 다시
dll로 넘겨서 Edit에 표시를 하려고 하거든요. 그런데 코드를 보시면 아시겠지만 timer에 의해 일정시간마다 dll을 호출합니다. 그런데 한번 호출하고 Close()가 있는데도 폼을 닫지 않고 계속해서 생성이 되네요. 제가 알고 싶은건
1. 왜 Close()가 먹히질 않는가??
2. 어떻게 하면 dll폼을 한번만 띄워놓고 거기에 계속 데이터를 넘겨받아 표시할수 있는가??
입니다.
현재 코드입니다.
//main------------------------------------------------------
void __fastcall TSampleForm::Timer1Timer(TObject *Sender)
{
Edit1->Text = Data;
typedef void (__stdcall *IMPPROC) (int);
HINSTANCE DllInstance;
IMPPROC ImpFunc;
DllInstance = LoadLibrary("About.dll");
ImpFunc = (IMPPROC) GetProcAddress(DllInstance, "_InvokeAboutDialog");
ImpFunc(Data);
FreeLibrary(DllInstance);
Data++;
if (Data >=100)
Data = 0;
}
//Aboutdll-----------------------------------------------------------------------------
void InvokeAboutDialog(int mainData)
{
AnsiString a;
a.sprintf("%d",mainData);
TAboutForm *AboutDlg = new TAboutForm(NULL);
AboutDlg->AboutEdit->Text = a;
AboutDlg->ShowModal();
AboutDlg->Close(); <----바로 이부분이 안먹히는거 같아요ㅠ.ㅠ
delete AboutDlg;
}
|