|
질문 하시는 부분이 정확히 파악되지는 않지만..
LoadLibrary는 프로그램 시작시..(OnShow 이벤트 같은 때) 한 번 시도해주시고..
나머지 경우에 dll 이 로드되어있는지 아닌지는 himo 가 NULL인지 아닌지만 확인하면 됩니다.
아야 님이 쓰신 글 :
: 안녕하세요 포럼회원님... 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실행을 하면 되는가요???
: 고수님 부탁합니다....
|