Thread Win32::API und LibUSB-Win32
(36 answers)
Opened by rosti at 2017-02-03 11:40
Nur kurz: Wenn Du ohnehin nur das erste Device aus dem ersten Bus nimmst, kannst Du usb_open mit dem .devices-Member aus dem usb_bus-struct aufrufen, der zeigt ja genau dorthin. _get_fst_device ist an der Stelle verzichtbar, _get_busses liefert die Info bereits.
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 my $mem_usb_bus = ReadMemory($bus_addr, 532); my %usb_bus; @usb_bus{qw( next prev dirname devices location root_dev )} = unpack "VVZ512VVV", $mem_usb_bus; Der Aufruf von usb_open verlangt als Parameter einen struct-Pointer, hier würde ich "P" nehmen (nicht "T") und .devices übergeben. Probier doch mal, was usb_open dann liefert. Win32::Struct würde ich hier ehrlich gesagt garnicht verwenden, da Du ohnehin Byte-Blocks liest und unpackst, da schafft das Abstraktionslayer nur Verwirrung ... EDIT: In Deinem C-Code iterierst Du über die busses, aber nicht im Perl-Modul. Last edited: 2017-02-08 08:48:14 +0100 (CET) Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"
|