Q&A

  • 여러개의 아이콘을 가지는 DLL만들기
안녕 하십니까?

알고 싶은것은 단축 아이콘의 아이콘을 변경할때 찾기에서

Windows의 system에서 shell32.dll을 선택하면 DLL안에 여러개의

아이콘이 있는것을 볼 수 있습니다. 이런 DLL은 어떻게 만드는지

알고 십습니다. 좀 급한 거라 부탁 합니다.



그리고 이 DLL의 사용법 즉, 아이콘를 만들때 어떻게 연결 하면 되는지

고수님들 부탁 드립니다.

1  COMMENTS
  • Profile
    최용일 2001.02.16 02:58
    안녕하세요. 최용일입니다.



    만들고 싶은신 리소스DLL은 간단합니다.



    먼저 델파이에 있는 이미지에디터에서 리소스파일(.res)을 만들어서 여러가지 아이콘들을



    넣어줍니다.



    그런후에 새로운 DLL프로젝트를 만들고 거기에다가 리소스파일을 링크시키시면 됩니다.



    library MyIconDll;



    {$R *.RES}

    {$R myresfilename.res} // <== 이미지에디터로 만든 리소스파일이름



    begin

    end.



    이렇게 단 한줄만 추가해서 컴파일하면 아이콘만 들어있는 Dll이 만들어지죠...



    프로젝트에서 리소스DLL은 동적으로 불러와서 사용하시면 됩니다.



    TForm1 = class(TForm)

    Button1: TButton;

    procedure FormDestroy(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    private

    FDllHandle: THandle;

    public

    property DllHandle: THandle read FDllHandle write FDllHandle;

    end;



    procedure TForm1.FormCreate(Sender: TObject);

    begin

    DllHandle := LoadLibrary(DllFileName); // Dll을 메모리에 로드한다...

    try

    if (DllHandle = 0) then

    ShowMessage('dll을 메모리에 로드하는데 실패했습니다.');

    end;

    end;



    procedure TForm1.FormDestroy(Sender: TObject);

    begin

    if (DllHandle <> 0) then

    FreeLibrary(DllHandle); // 메모리에서 dll을 삭제한다...

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    Icon.Handle := LoadIcon(HInstance, 'icon1'); // dll에서 'icon1'이란 이름을 가진아이콘을 로드한다.

    end;



    ^^ 항상 즐코하세요.



    진 wrote:

    > 안녕 하십니까?

    > 알고 싶은것은 단축 아이콘의 아이콘을 변경할때 찾기에서

    > Windows의 system에서 shell32.dll을 선택하면 DLL안에 여러개의

    > 아이콘이 있는것을 볼 수 있습니다. 이런 DLL은 어떻게 만드는지

    > 알고 십습니다. 좀 급한 거라 부탁 합니다.

    >

    > 그리고 이 DLL의 사용법 즉, 아이콘를 만들때 어떻게 연결 하면 되는지

    > 고수님들 부탁 드립니다.