Seite 1 von 1

Ältere DLL wird nicht mehr geladen

Verfasst: 10.06.2024 18:15
von chris1975
Hallo zusammnen,
ich benutze schon seit vielen Jahren die twscann.dll um auf Scanner zuzugreifen.
Das hat für mich bis zur PureBasic 6.04 super funktioniert.
Nun, mit der Version 6.11 wird die DLL nicht mehr geladen.
DLL ist 32Bit
PureBasic 6.11 LTS (Windows - x86)

Da ich eher Anfänger bin, stehe ich hier vor einem Problem.
Diese Zeilen hier haben funktioniert. Nun aber nicht mehr....
OpenLibrary öffnet die DLL nicht mehr.

Code: Alles auswählen

If OpenLibrary(#scanner_dll, "TwScann.dll")
  ergebnis =  CallFunction(#scanner_dll, "IsTwain")
Else
  MessageRequester("Fehler","Kann die Datei twscann.dll nicht laden",#MB_ICONERROR)
EndIf

If ergebnis=0 
  MessageRequester("Fehler","Kein gültiger Twain-Treiber!")
  
  End
EndIf
Wenn ich mit Version 6.04 arbeite, geht es wieder.
Ich würde mich über einen Tipp freuen!
Grüße,
Christoph

Re: Ältere DLL wird nicht mehr geladen

Verfasst: 10.06.2024 19:09
von HeX0R
Füge mal den Pfad zur dll dazu, das Problem kommt vermutlich durch die DLL protection (siehe Compiler-Einstellungen, da kann man das auch an und ausschalten).
DLLs ohne Pfadangabe zu laden ist immer irgendwie "gefährlich"

Re: Ältere DLL wird nicht mehr geladen

Verfasst: 10.06.2024 19:28
von chris1975
Hallo HeXOR,,
danke für die schnelle Antwort!
habe den Pfad hinzugefügt, und die DLL preloding protection eingeschaltet.
Hat leider nicht funktioniert.
Die DLL befindet sich im Verzeichnis der PBasic-Datei.
Hatte den Pfad auch schon mal mit GetCurrentDirectory() ermittelt. Ging auch nicht.

Re: Ältere DLL wird nicht mehr geladen

Verfasst: 10.06.2024 20:30
von DarkDragon
Da gabs was im Englischen Forum. Das ist wegen dem MSVCRT update so, wenn ich mich recht erinnere.

Guck am besten mal mit dem dependency walker drauf oder so oder probiere den anderen Linker.

Aber ich bin mir nicht 100% sicher und finde auch den Link nicht mehr.

Re: Ältere DLL wird nicht mehr geladen

Verfasst: 10.06.2024 20:42
von chris1975
Okay, das werde ich mir anschauen.
Vielen Dank für den Hinweis!

Re: Ältere DLL wird nicht mehr geladen

Verfasst: 19.06.2024 16:47
von chris1975
Hallo zusammen,
wie es ausschaut wird diese DLL in Zukunft nicht mehr laufen.
Das liegt wohl tatsächlich an dem MSVCRT Update.
Mal schauen... es gibt ja auch andere Wege :)
Danke für Euren Support!

Re: Ältere DLL wird nicht mehr geladen

Verfasst: 19.06.2024 17:53
von jacdelad
Du kannst immer noch versuchen mit einer älteren Version von PureBasic eine DLL als Mittelsmann einzusetzen. Ist zwar etwas umständlich, aber hey, wenn's funktioniert?!

Re: Ältere DLL wird nicht mehr geladen

Verfasst: 19.06.2024 19:34
von chris1975
Ja, genau. Das wird auch noch einige Zeit funktionieren. 👍