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
[53762] Re:dll 파일과 bpl 파일의 장단점은?
장성호 [nasilso] 3217 읽음    2008-06-25 02:40
bpl을 거의 사용해 보지 않아서 잘 모릅니다만
개인적인 의견 몇자 적어봅니다. 그냥 참고만 하시길...

[bpl의 장단점]

bpl 의 장점
   - 콤포넌트가 들어갈수 있다는것 얘기하셨는데...
      다르게 표현하면 class를 넣을수 있구 다른 exe,dll,bpl등에서 그 class를 사용할수 있는게요
      이게 엄청나게 큰 장점 아닌가요?

bpl의 단점
   - vc나 vb , c 등에서 사용할수 없는게죠
   - delphi 버젼이 다르면 호환 문제가 있을수도...( 정확히 잘 모름)


[build width runtime packages 옵션]

C++Builder6.0 에서 VCL은 vcl60.bpl 인걸로 알고 있습니다.

만약 bcb6으로 폼이 포함된 dll을 만드는데  build width runtime packages 를 끄고 만들었다고 합시다.
그리고 그 dll을 exe에서 LoadLibrary로 load해서 dll 내에서 Form을 생성해 사용할경우에

Dll 에서 보는 vcl 과 exe의 vcl이 다른 놈이 됩니다.
즉 exe에서 Application 객체와 dll에서 Application객체가 다른놈이 되는거죠
이것은 여러가지 심각한 문제를 발생시킬수 있습니다.

예를 들어 Dll에 있는 Form에서 OpenDialog 등 각종 CommonDialog를 Execute로 Open하게 되면
Application 객체에 Hook을 거는데 실세 Application->Run 이 돌고 있는 객체에 hook을 걸지 않고
엉뚱한 놈한테 걸게 되는거죠  그래서 화면에 깨지거나 하는 이상한 현상이  발생할수 있습니다.

또한 Form을 생성하면 Screen 객체에 등록 되게 됩니다.
그래서 Screen의 Forms 를 통해 현제 Application에 생성되어있는 Form를 모두 알수가 있죠
또한 Screen에서 Form의 순서도 관리하고 있죠
그런데 Dll에서 Form을 생성하면 엉뚱한 Screen객체에 Form이 등록되죠

또한 Dll의 폼에서 툴팁(Hint)가 보일경우도 문제가 발생할수 있구...

하여간 여러가지 build width runtime packages 를 끄고 Dll에서 vcl을 이용하여 GUI가 있는 무엇인가를 할경우에
여러가지 문제가 발생할수 있습니다.

문론 위에서 제기한  build width runtime packages 를 끄고  dll에서 Form등 vcl을 사용했을때의 문제를
피해갈수 있는 방법이 있습니다만....
불편하고 머리아프죠



참고
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=50617

http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=50374
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=50394

그럼..



크레브 님이 쓰신 글 :
: 두가지 질문을 하겠습니다.
:
: 한가지는 제목처럼
: dll파일과 bpl 파일의 장단점
: bpl파일은 패키지로서 콤포넌트가 들어갈 수 있다는 점 외에
: 다른 장점이 있을까요?
:
: 그리고 두번째는
: dll 파일과 exe 실행파일의 관계에서
: dll을 만드는 프로젝트 옵션에서
: build width runtime packages 옵션을 켰을때와 껐을때
: 그 dll 파일을 이용하는 exe 실행파일 프로젝트 옵션에서
: 위 옵션을 켰을때와 껐을때가 있을겁니다.
: 각각 옵션을 끄고 켤 수 있기때문에 경우의 수가 4가지가 생길텐데..
: 이 경우 dll과 실행파일의 동작 방식에 대해 명쾌한 설명 부탁드립니다.
:
: 예를들어 각각 dll 프로젝트와 exe의 Form에서 같은 콤포넌트 패키지를 사용할경우나
: 각각 같은 라이브러리를 링크 했을 경우 등의 말입니다.

+ -

관련 글 리스트
53760 dll 파일과 bpl 파일의 장단점은? 크레브 1454 2008/06/25
53762     Re:dll 파일과 bpl 파일의 장단점은? 장성호 3217 2008/06/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.