C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[51027] Re:Re:클래스(class) 선언 문의드립니다.
짱구오빠 [] 1424 읽음    2007-10-24 20:53
장성호님 감사합니다.
잘됩니다. ^^
행복한 밤 되세요.


장성호 님이 쓰신 글 :
: 이해가 잘 안되네요
: 몇가지 체크해보세요
:
: 1.  LoadLibrary 에서
:
:       m_hHandle = LoadLibrary(("C\\aaa.dll").c_str()); //이 아니라
:       m_hHandle = LoadLibrary("C\\aaa.dll");              // ==> 그냥 이렇게 하세요
:
: 2. FormShow에서
:      tempclass 클래스를 new하는 부분이 없네요
:      new로 생성하지 않고 tempclass->AFunc()  이렇게 그냥사용하시면
:     실제 tempclass의 인스턴스 객체는 생성되지않는상태에서 함수만 호출된것이되는데..
:     AFunc 함수내에서 인스턴스 맴버를 access하면 에러가 나겠죠
:
:     포인터로 선언한 놈은 
:        TTempClass* tempclass=new   TTempClass;
:        이렇게 생성한후에 함수를 쓰시고
:        마지막엔 delete  tempclass;  이렇게 free하시구요
:
:     만약 new 하기 귀찮으시면
:     위와같이 쓰시면 자동 생성되었다가 FormShow함수가 끝날때 자동 free됩니다.
:
: void __fastcall TForm1::FormShow(TObject *Sender)
: {
:      TTempClass tempclass;
:       if (tempclass.AFunc())
:       {
:        }
:
:       if (tempclass.BFunc())
:       {
:       }
: }
:
: 그럼...
:
:  
:
: 짱구오빠 님이 쓰신 글 :
: : 너무 초보적인 질문이라도 답변 부탁드립니다.
: :
: : 메인폼 하나와
: : Unit 하나를 생성하고
: : 아래와 같이 클래스를 선언했습니다.
: :
: : 유닛에 코딩한 함수입니다.
: :
: : #include "TempClass.h"
: :
: : //HINSTANCE m_hHandle;
: :
: : bool TTempClass ::AFunc(void)
: : {
: :    //Library Load
: :     m_hHandle = LoadLibrary(("C\\aaa.dll").c_str());
: :     if (m_hHandle == NULL) return false;
: :
: :     //Get Proc Address Set
: :     Initialize = (DWORD(__stdcall*)(void*))GetProcAddress(m_hHandle , "C_Initialize");
: : }
: :
: : bool TTempClass ::BFunc(void)
: : {
: : }
: :
: : Unit 헤더파일에 아래와 같이 선언했습니다.
: :
: : #ifndef TempClassH
: : #define TempClassH
: :
: : //Class Define
: : class TTempClass
: : {
: : private:
: :       HINSTANCE m_hHandle;
: :
: :      DWORD (WINAPI* Initialize)(void* m_pReserved);
: :
: : public:
: :       bool AFunc(void);
: :       bool BFunc(void);
: : }
: :
: : 메인폼에 아래와 같이 선언했습니다.
: :
: : //HSM Library & Connect class
: : TTempClass* tempclass;
: :
: : //---------------------------------------------------------------------------
: : //Form Show Event
: : //---------------------------------------------------------------------------
: : void __fastcall Tfmainform::FormShow(TObject *Sender)
: : {
: :       if (tempclass->AFunc())
: :       {
: :        }
: :
: :       if (tempclass->BFunc())
: :       {
: :       }
: :
: : }
: :
: :
: : 이렇게 컴파일해서 실행하니
: : LoadLibrary 함수 처리할때 Exception 에러가 납니다.
: :
: : 또한
: : GetProcAddress
: : 부분에서도 Exception 에러가 나네요.
: :
: :
: : HINSTANCE m_hHandle;
: : 선언을 유닛에 선언하면 에러가 나질 않네요.

+ -

관련 글 리스트
51006 클래스(class) 선언 문의드립니다. 짱구오빠 1271 2007/10/23
51009     Re:클래스(class) 선언 문의드립니다. 장성호 1300 2007/10/24
51027         Re:Re:클래스(class) 선언 문의드립니다. 짱구오빠 1424 2007/10/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.