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
[50617] DllEntryPoint 호출에 대해
장성호 [nasilso] 1977 읽음    2007-09-20 09:45
C++Builder로 Dll을 만들고
프로그램에서 Dll을 LoadLibrary할때  dll의  DllEntryPoint 호출에 대해서 질문드립니다.
이상하게 어떤때는 DllEntryPoint 가 호출되고 어떤때는 DllEntryPoint 가 호출이 안되는것 같아서요


BCB로 exe만들고
Dll1은 BCB로 만들고
Dll2는 Delphi로 만들었습니다.


------------Dll1 코드---------------------------------------
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
    MessageBox(NULL,"BCBDll DllEntryPoint","확인",0);
    return 1;
}

------------Dll2  코드---------------------------------------
begin
   MessageBox(0, PChar('DelphiDll DllEntryPoint'), '확인', 0);
end.


bcb로 만든 exe에서 Delphi로만든 Dll2를 LoadLibrary하면 MessageBox가 반드시 뜹니다.
그런데 bcb로만든  Dll1을 LoadLibrary하면 MessageBox가 뜨지 않습니다.
왜그렇죠?

여러가지로 테스트결과 BCB에서 DLL을 Compile할때 Runtime packages를 uncheck하고
compile하니 BCB로 만든 dll도 LoadLibrary 할때  DllEntryPoint가 호출되더군요

Runtime으로 할경우 exe에서 vcl60.bpl이 이미 load되어있으므로
dll을 load할때 EnteryPoint를 호출하지 않는것인지요?

질문1
BCB에서 dll EnteryPoint 호출 방식에 대해 궁금합니다.


질문2.
위에랑 같은 질문인데요
vb로 exe만들고 vb에서 bcb로 만든 dll을 썼었는데요
이상하게 DllEntryPoint가 여러번 호출되더라구요
사용하는 dll은 하나이구 함수가 여러가지일뿐인데..
새로운 함수 호출때마다 한번씩 호출되는것 같기두 하구...

답변 미리 감사합니다.

+ -

관련 글 리스트
50617 DllEntryPoint 호출에 대해 장성호 1977 2007/09/20
50618     Re:DllEntryPoint 호출에 대해 kylix 2278 2007/09/20
50635         Re:Re:DllEntryPoint 호출에 대해 장성호 2273 2007/09/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.