![]() |
Bilder in DLL einbinden und aufrufen
Hallo zusammen,
ich habe das Beispiel aus Library: Grafik / Sound / Multimedia - Bilder in DLL einbinden und aufrufen ausprobiert
Delphi-Quellcode:
und unter WinXP funktioniert auch alles reibungslos. Versuche ich aber jetzt das ganze unter Windows98 so funktioniert es nicht mehr, da mir die Funktion LoadLibrary kein Handle auf meine DLL liefert. Ein Handle von einer EXE hingegen wird geliefert. Woran könnte das liegen?
var
h :HINST; r :TResourceStream; j :TJpegImage; i :integer; begin h := LoadLibrary('Bilder.dll'); if h <> 0 then begin r := TResourceStream.Create(h, Bild1, 'Jpeg'); j := TJpegImage.Create; try j.LoadFromStream(r); Image1.Picture.Bitmap.Assign(j); finally j.Free; r.Free; end; end; FreeLibrary(h); end; MfG Adler |
Re: Bilder in DLL einbinden und aufrufen
Zitat:
Wenn sie nämlich im selben Verzeichnis wie die EXE liegt, dann solltest du folgendes benutzen:
Delphi-Quellcode:
h := LoadLibrary(PChar(ExtractFilePath(ParamStr(0)) + 'Bilder.dll'));
|
Moin Adler,
für den Fall, dass kein Handle zurückgeliefert wird, könntest Du mal
Delphi-Quellcode:
aufrufen, um Dir den Grund für den Fehler anzusehen.
ShowMessage(SysErrorMessage(GetLastError));
|
Hallo jbg,
die DLL liegt zwar im gleichen Verzeichnis wie die EXE ich habe aber den kompletten Pfad der DLL übergeben und als Ergebnis hat h immer den Wert Null. |
Hallo Christian,
Delphi-Quellcode:
liefert mir das angeblich zu wenig Speicher vorhanden ist. Ich muss dazu sagen das ich Win98 auf einem anderen Rechner laufen habe als WinXP. Vor dem Programmstart sind aber noch gut 32 MB Arbeitsspeicher frei so das es eigentlich kein Problem sein sollte eine DLL von 2,5 MB aufzurufen.
ShowMessage(SysErrorMessage(GetLastError));
MfG Adler |
Hallo zusammen,
es lag scheinbar wirklich nur an der Größe der DLL. Ich habe sie jetzt auf mehrere DLLs verteilt und jetzt funktioniert es. Wäre mir zwar lieber gewesen alles in eine DLL zu bekommen aber was soll man machen :evil: Vielen Dank an jbg und Christian |
Wie groß war denn die eine DLL?
|
2,5 MB
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz