![]() |
AW: DLL ignorieren wenn nicht im Pfad
Die Frage wäre dann wo liegt der Unterschied denn die von lbccaleb
vorgeschlagene funktioniert eigentlich so wie sie soll. Muss ja nicht mit Gewalt ein Exeption erstellen wenn es vermeidbar ist. gruss |
AW: DLL ignorieren wenn nicht im Pfad
Viel interessanter finde ich die Frage, was passiert, wenn die DLL die entsprechende Routine gar nicht exportiert. Mit GetProcAddress erhalte ich einen Nil-Pointer, aber bei Delayed Loading?
|
AW: DLL ignorieren wenn nicht im Pfad
Zitat:
Das reicht mir so für die eine function ;)
Delphi-Quellcode:
BASS_WASAPI_GetData : function(buffer: Pointer; length: DWORD): DWORD;
Delphi-Quellcode:
gruss
if FileExists(ExtractFilePath(paramstr(0)) + basswasapi) then
begin WasabiHandle := LoadLibrary(basswasapi); if WasabiHandle <> 0 then begin @BASS_WASAPI_GetData := GetProcAddress(WasabiHandle, 'BASS_WASAPI_GetData'); if not Assigned (BASS_WASAPI_GetData) then begin ShowMessage('"Dynamic load"' + #13#10 + 'loading.. function BASS_WASAPI_GetData fail'); Halt; end; end; end; |
AW: DLL ignorieren wenn nicht im Pfad
Ja eben, so hast Du wenigstens die Kontrolle, wenn auch etwas mehr Tipparbeit.
|
AW: DLL ignorieren wenn nicht im Pfad
Und der Rest macht auch keine Problem..
Delphi-Quellcode:
damit bin ich hiermit fertig :)
if WasabiHandle and MixerHandle <> 0 then
begin if UseWASAPI then Data := BASS_WASAPI_GetData(@SpectrumData, BASS_DATA_FFT2048) else Data := BASS_Mixer_ChannelGetData(FChannelId, @SpectrumData, BASS_DATA_FFT2048); if Data = -1 then BASS_ChannelGetData(FChannelId, @SpectrumData, BASS_DATA_FFT2048); end else BASS_ChannelGetData(FChannelId, @SpectrumData, BASS_DATA_FFT2048); gruss |
AW: DLL ignorieren wenn nicht im Pfad
Ich sehe den Unterschied nicht. Das
Delphi-Quellcode:
-Schlüsselwort verursacht beim Aufruf genauso eine
delayed
Delphi-Quellcode:
wenn die Datei nicht existiert, als wenn der Einsprungspunkt nicht existiert.
EExternalException
Aber wie gesagt, mein Geschmack ist es trotzdem auch nicht, ich suche mir den Kram auch lieber mit
Delphi-Quellcode:
selbst zusammen :-)
GetProcAddress
|
AW: DLL ignorieren wenn nicht im Pfad
Zitat:
gruss |
AW: DLL ignorieren wenn nicht im Pfad
Zitat:
Beende also die Anwendung normal und stell sicher das alles entladen wurde. |
AW: DLL ignorieren wenn nicht im Pfad
Delphi-Quellcode:
bedeutet doch nur, daß die DLL überhaupt erst dann geladen wird, wenn sie auch verwendet wird (Arbeitsspeicherentlastung), die Direktive entbindet nicht von der Verantwortung zu prüfen, ob die DLL da ist und funktioniert.
delayed
Sherlock |
AW: DLL ignorieren wenn nicht im Pfad
Zitat:
Aber bei dieser Bibliothek welche nur als wrapper funktioniert dürfte das egal sein. Die Plugins beenden sich von allein. Aber wenn ud meinst es wäre besser kann ich es ohne probleme noch ändern.
Delphi-Quellcode:
if not Assigned (BASS_Mixer_ChannelGetData) then
begin ShowMessage('"Dynamic load"' + #13#10 + 'loading.. function BASS_Mixer_ChannelGetData fail'); FreeLibrary(MixerHandle); BassVis1.QuitVisPlugin; end; gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:35 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