aa 님이 쓰신 글 :
: EXE 리소스에 DLL 파일 넣고 실행할 때
:
: 1. 리소스로 부터 시스템디렉토리나 임시 디렉토리에 DLL 파일을 생성해서 저장한다
: 2. LoadLibrary( 위에서 생성한 패스.dll) 를 이용해서 DLL을 로드한다
: 3. GetProcAddress(함수네임)으로 함수의 주소를 얻는다
: 4. DLL 함수를 사용한다
:
: 저런 식으로 DLL 파일을 리소스로 부터 읽어 들여서 시스템이나 임시 디렉토리에 카피해 놓고
: LoadLibray로 로드해서 사용하잖아요
:
: 궁금한건 임시 디렉토리 같은거 이용하지 않고
: EXE안에 내장되어 있는 DLL을 카피 없이 바로 다이렉트로 EXE 안에서 사용할수 없는가 하는거거든요
: 이런 방법이 가능한가요?
Graphics::TBitmap *wa1 =new Graphics::TBitmap;
TResourceStream *ResStream1;
HINSTANCE ImageDllInstance;
ImageDllInstance = LoadLibrary("pslib.dll"); //DLL에서 이미지들을 가지고 온다.
ResStream1 = new TResourceStream( (int)ImageDllInstance, "ID_800X600", RT_RCDATA );
wa1->LoadFromStream( dynamic_cast( ResStream1 ) );
이거보면 힌트가 되지않을가요? dll에 리소스 포함시킨상태에 dll파일을 가저와서 비트맵 뽑아내고
wa1비트맵 클래스에 집어넣은상태 이것처럼하면될거같은데요
힌트가될듯 저장안하고 바로 그림을 사용하는거니깐
|