3 biblioteki DLL w 1

0

Mam własną biblioteke dll która musi korzystać z innych. Jestem zmuszony je zawsze dołączać, czy jest taka możliwość aby skompilować ze sobą razem te 3 biblioteki ale tak żeby ta moja była główną, jako załącznik czy coś?

0
  1. jak masz ich źródła to możesz napisac jedną
  2. możesz te 3 wciągnąć do zasobów exe albo dll Twojej i jak są potrzebne wypakowywać je na hdd
0

Nie mam ich źródeł :(
Chodzi o biblioteki SSL libeay32.dll i ssleay32.dll. Udało mi sie je dodać jako zasób (Resources) przez ResHack ale nie wiem jak zrobić aby moja biblioteka z nich korzystała (bo wywala takie błedy jakby ich nie widziała)

0

o zanim się do nich odwołasz to je musisz wypakować i zapisać na hdd jako pliki dll

0

A jak je wypakować? Szukałem w artach i faq o zasobach ale tam tylko o wstawianiu kursora było

----EDIT----
Ok już sobie poradziłem, dzieki. Mam tylko pytanie, czy taki plik dołączony w zasobać nie potrzebnie zajmuje dodatkowo pamięc czy korzysta z niej tylko wtedy kiedy jest używany?

0

Standardem na forum jest że nawet jeśli sam doszedłeś do rozwiązania to podajesz je innym. Ileś osób poświęca czas próbując pomóc w rozwiązaniu problemu i rozwiązanie powinno się podać. Z forum korzysta wielu ludzi i teraz osoby o podobnym problemie będą zakłądać nowy wątek z zapytaniem jak to zrobić.

0

Czyli tak do skompilowanej niespakowanej biblioteki dodałem nowy zasób (Resources) za pomocą ResHacka a nastepnie aby wypakować to w OnCreate formy dałem taki kodzik:

procedure TForm1.FormCreate(Sender: TObject);
var
   Res: TResourceStream;
begin
   Res := TResourceStream.Create(hInstance,'Program',RT_RCDATA); // wyciągnij plik
   Res.SaveToFile('C:\libeay32.dll'); // zapisz na dysku
   Res.Free; //zwolnij zmienną
end;

Oczywiście zamiast C:\libeay32.dll' można dać Application.... i rozpakuje tam gdzie uruchomiony plik :). Przy dodawaniu zasobu w Reshack jako nazwe dałem Program a typ RCDATA (bez RT_)

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