|
안녕하세요 포럼회원님... m( =^ ^=)m
항상 많은 도움을 받고있습니다....
이번엔...DLL에 관한 모르는게 있어서 이렇게 또다시 글을 올립니다....
실행시Link 를 사용해서 DLL파일을 불러들이는 에플리를 만들고 있는데요...
다른건 순조롭게 만들어졌는데...마지막으로 에러처리를 어떻게 해야할지 망설이고 있습니다...
제가 하고 있는 프로젝트는요... 동적폼을 실행해서 SubForm에서 동적DLL을 실행시킬려고 합니다..
만약에 LoadLibrary()로 DLL파일을 로드해서 핸들이 NULL일경우MessageBox()로 User에게 알리고
SubForm을 Close()함 ...
단,
1. MainForm이랑다른SubForm1,2..에서 실행시킨 이벤트에는 영향을 안 미침
2. SubForm에는 여러가지 Button이 배치되어있슴..
이런경우에는 하나의 공통된 에러 관수를 하나 작성해서 각Button컴퍼넌트를 KeyDown할때마다 선두에 적어
DLL 가Load되었을 경우에만 실행시킴...
이렇게 하면 되나요?????
우선 이렇게 해봤는데요...
void __fastcall TSubForm::FormActivate(TObject *Sender)
{
hmio = LoadLibrary( "MIO.dll"); //DLL Load
if ( hmio == NULL) { //DLL가 Load되지않았을경우
Application->MessageBox(
"DLL 가 OPEN안되었슴",
"DLL 에러",
MB_OK);
Close();
}
}
//---------------------------------------------------------------------------
void __fastcall TSubForm::TeleBtn1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
hmio = LoadLibrary( "MIO.dll");
if ( hmio == NULL) {
Application->MessageBox(
"DLL DLL 가 OPEN안되었슴
"DLL 에러",
MB_OK);
Close();
} else {
// Open된경우 이벤트에 대한 처리함...
}
//---------------------------------------------------------------------------
void __fastcall TSubForm::FormDestroy(TObject *Sender)
{
FreeLibrary( hmio); // DLL의 해방
}
이렇게 하면 되나여...??? m( - -;;)m
그리고,질문1 에대한 처리는 어떻게 해야할지..... MainForm에서도 이런식으로 DLL실행을 하면 되는가요???
고수님 부탁합니다....
|