Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi DLL-Aufruf verändert lokale Variable (https://www.delphipraxis.net/136104-dll-aufruf-veraendert-lokale-variable.html)

hoika 24. Jun 2009 07:26

Re: DLL-Aufruf verändert lokale Variable
 
Hallo,

ja so eine ähnliche hatte ich nach langem Suchen auch gefunden.
Benutz doch mal usb_set_debug(3) (nach dem usb_init).

# Update: #
Noch ein Link. Ist zwar C, sollte aber trotzdem lesbar sein.
Wie man dort vor dem usb_open sieht, werden ein Haufen Sicherheitsabfragen vor dem open geamcht,
u.A. der Test, ob das Gerät in Benutzung ist.

USB 1

Bei solchem DLL-Kram kannst du jetzt nur mit Code-Ausklammern anfangen.
Mach den Code mal ganz einfach.
Ich weiss, du sagst dir, die Stelle ist doch klar,
aber Pointer-Problemen sind halt schwierig.

Welche Version der USBLibExport.dll hast du eigentlich ?


Unter folgendem Link steht eine weitere LibUSB (von 2006)
mit einer kleinen Hilfsklasse.

USB 2

Ich würde die Klasse mal ausprobieren (nicht die ganze Unit, es wird auf eine andere DLL verwiesen).
Die Klasse kapselt aber die usb_XXX Funktionen ein wenig.



Heiko

DelphiManiac 24. Jun 2009 10:30

Re: DLL-Aufruf verändert lokale Variable
 
Hallo Heiko,

erstmal super vielen Dank für deine Antworten.

Ich habe jetzt mal den Debugmode der DLL gestartet

Delphi-Quellcode:
usb_set_debug(3)
Nach absenden meiner Control Message bekomme ich den Fehlercode -5

---------------------------
Project1
---------------------------
usb_control_msg: sending control message failed, win error: Ein an das System angeschlossenes Gerät funktioniert nicht.

---------------------------
OK
---------------------------

Ist leider nicht sehr aussagekräftig, also der Connect funktioniert auch das Claim_Interface und das setzten der Konfiguration.
Aber dann meckert er beim Senden,

ich habe jetzt mal die Kapselung von Link 2 der französichen Seite genommen.

P.S.: Ich greife direkt auf die libUSB0.dll zu, also nicht über eine Wrapper DLL...
Vielleicht sollte ich das nochmal probieren...

Gruß
DM


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:46 Uhr.
Seite 2 von 2     12   

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 by Thomas Breitkreuz