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
[28998] Re:Re:리소스 dll을 어떻게 만드나요 ?????
오정훈 [geniusjh] 2052 읽음    2004-03-09 16:29
오정훈 님이 쓰신 글 :
: freeman 님이 쓰신 글 :
: : 안녕하세요 ....
: :
: : wave(*.wav) 파일과 이미지화일을
: : 리소스 dll로 만드는 방법을 몰라서요.
: : 여러 고수님께 부탁 드립니다.
: :
: : 그럼 안녕히 계세요.
: :
: :
:
: 저도전에 필요해서 찾은것입니다.
: 조금 수정을 했으니 참고하시면 될것입니다.
:
: * DLL 화일로부터 리소스를 메모리에 적제하는 법
:
:     0. var Instace: THandle;
:
:     1. Instance := LoadLibray('화일이름.DLL')
:     2. if Instance = 0 then
:          raise Exception.Create('화일이름.DLL을 찾을 수 없습니다.');
:
: * DLL 화일안의 Bitmap 가져와 Image1에 그려주기
:
:     1. Image1.Picture.Bitmap.LoadFromResourceName(Instance, '리소스 명');
:
: * DLL 화일안의 Wave 화일 가져와 연주하기
:
:     0. var hResource: HGLOBAL;
:            pszSound: LPCSTR;
:     1. hResource := LoadResource(Instance,
:  FindResource(Instance, '리소스 이름', '리소스 식별명'));
:     2. pszSound := LockResource(hResource);
:     3. PlaySound(pszSound, Handle, SND_MEMORY);
:     4. FreeResource(hResource);
:
: * 메모리로부터 DLL 리소스 해제하는 법
:
:     1. FreeLibrary(Instance);




제가 같이 있는지 알았는데 내용이 없었네여...
이미지만 예로 들겠습니다.

만드는 방법은여 우선은 메모장에
ID_BACK RCDATA ".\res\Back.jpg"
--------------------------------
아이디 타입 경로

만약 비트맵타입이면
ID_aaa BITMAP ".\res\아미지파일명.bmp"

이런식으로 내용을 넣습니다.
그리고 나서 확장자를 .rc로 만들고

프로젝트를 DLL로 만듭니다 그리고 나서 rc 파일을 추가를 하고 컴파일을 하면
리소스 DLL 이 만들어 집니다.

블러오는 방식은 RCDATA은

       TJPEGImage* JpgImg;
       JpgImg = new TJPEGImage();

       TResourceStream *ResStream;

       HINSTANCE ImageDllInstance;
       ImageDllInstance = LoadLibrary("파일명.dll");    //DLL에서 이미지들을 가지고 온다.

       try
       {
           ResStream = new TResourceStream( (int)ImageDllInstance, "ID_BACK", RT_RCDATA );
           JpgImg->LoadFromStream( dynamic_cast<TStream*>( ResStream ) );
           BooJuckImg->Canvas->Draw(0,0,JpgImg);
       }
       __finally
       {
         delete JpgImg;
         delete ResStream;
       }


웨이브도 타입이 있을것입니다.
아니면 RCDATA로 하셔서 읽을때 처리를 하시는 것도 괜찮을것 같습니다.


하도 예전에 했던거라 찾기가....
그럼 즐플이여...

+ -

관련 글 리스트
28985 리소스 dll을 어떻게 만드나요 ????? freeman 1043 2004/03/07
28989     Re:리소스 dll을 어떻게 만드나요 ????? 오정훈 1539 2004/03/08
34575         Re:Re:리소스 dll을 어떻게 만드나요 ????? freeman 1116 2004/03/08
28998         Re:Re:리소스 dll을 어떻게 만드나요 ????? 오정훈 2052 2004/03/09
34574             Re:Re:Re:리소스 dll을 어떻게 만드나요 ????? freeman 1163 2004/03/09
34573             Re:Re:Re:리소스 dll을 어떻게 만드나요 ????? 오정훈 1230 2004/03/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.