Korrekt ist:
Delphi-Quellcode:
unit USB_DLL;
interface
function GetUSBDeviceInfo(
var UsbDevices: Longint; SerialNumber: PChar;
var LenSerialNumber: Longint): Longint;
stdcall;
implementation
function GetUSBDeviceInfo;
external '
USBCAL.DLL'
name '
GetUSBDeviceInfo';
end.
Aufruf:
Delphi-Quellcode:
var
SerialNumber: array [0..255] of Char;
UsbDevices: Longint;
LenSerialNumber: Longint;
begin
LenSerialNumber := SizeOf(SerialNumber);
GetUSBDeviceInfo(UsbDevices, SerialNumber, LenSerialNumber);
end;
Das geht von der Voraussetzung aus das die Funktion Infos ueber genau ein Device liefert.
Es koennte sein das der Parameter UsbDevices von einer anderen Funktion ausgefuellt worden sein muss.
Auf jeden Fall soll hier ein Puffer mit einem C String gefuellt werden. Dazu muss man der Funktion in LenSerialNumber mitteilen wie gross der Puffer ist.
Hinterher traegt die Funktion offensichtlich in LenSerialNumber ein wieviele Bytes sie in den Puffer kopiert hat.