Ładowanie biblioteki z zasobu

0

Mam fajny komponent UnRAR, który bardzo mi się spodobał. Wszystko by było OK, jakby nie to, że potrzebuje onzewnętrznej biblioteki (którą oczywiście posiadam). Tylko, że mi zależy, aby program umiał rozpakowywać RAR'y biblioteką, która by była jakoś zintegrowana w nim. Dlatego pomyślałem o zasaboch, stąd moje pytanie - Czy da się jakoś załadować bibliotekę z zasobów nie zapisując jej wcześniej nigdzie na dysku, tylko, żeby odpaliło ją w "locie" tak jak np. robi to np. TIcon (LoadFromStream). Zamieszczam tą procedurę, mam nadzieje, że ktoś pomoże mi to odpowiednio zmienić, aby wszystko już było w EXE'cu :) Pozdrawiam.

...

procedure LoadRarLibrary;
begin
  h := LoadLibrary('unrar.dll'); // tu trzeba to jakoś załadować z zasobów, tylko jak ? :(
  if h <> 0 then
  begin
    IsLoaded := true;
    @RAROpenArchive        := GetProcAddress(h, 'RAROpenArchive');
    @RAROpenArchiveEx      := GetProcAddress(h, 'RAROpenArchiveEx');
    @RARCloseArchive       := GetProcAddress(h, 'RARCloseArchive');
    @RARReadHeader         := GetProcAddress(h, 'RARReadHeader');
    @RARReadHeaderEx       := GetProcAddress(h, 'RARReadHeaderEx');
    @RARProcessFile        := GetProcAddress(h, 'RARProcessFile');
    @RARSetCallback        := GetProcAddress(h, 'RARSetCallback');
    @RARSetChangeVolProc   := GetProcAddress(h, 'RARSetChangeVolProc');
    @RARSetProcessDataProc := GetProcAddress(h, 'RARSetProcessDataProc');
    @RARSetPassword        := GetProcAddress(h, 'RARSetPassword');
    @RARGetDllVersion      := GetProcAddress(h, 'RARGetDllVersion');
  end;
end;
0

imo nie da się. wypakuj tymczasowo z zasobów, a na koniec skasuj. albo jeszcze prościej - wypakuj raz na zawsze do %windows%\system32

1 użytkowników online, w tym zalogowanych: 0, gości: 1