Autor |
Beitrag |
jjturbo
Beiträge: 516
Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
|
Verfasst: Mi 13.04.22 10:37
Moin Forum,
dieser Aufruf funktioniert: Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| function DCGetInfo(type_mask, model_mask:Integer; prodcode_mask:PAnsiChar; array_length:Integer; num_found:PInteger; type_array,model_array:pointer; prodcode_array:pointer; dongle_number_array:pointer; update_number_array: pointer) : Integer; stdcall; external 'DinkeyChangeDebug.dll'; . . . procedure irgendwas; begin Result := DCGetInfo(TYPE_MASK_ALL, MODEL_MASK_LITE, nil, MAX_USB_DEVICES, @num_found, @type_array, @model_array, @prodcode_array, @dongle_number_array, @update_number_array); |
dieser schlägt fehl:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| type TFunktion = function(type_mask, model_mask:Integer; prodcode_mask:PAnsiChar; array_length:Integer; num_found:PInteger; type_array,model_array:pointer; prodcode_array:pointer; dongle_number_array:pointer; update_number_array: pointer) : Integer;
procedure irgendwas; var Funktion :TFunktion; Handle :THandle; begin DLLName := 'dinkeychangedebug.dll' Handle := LoadLibrary(PChar(DLLName)); if Handle <> 0 then begin @Funktion := GetProcAddress(Handle, 'DCGetInfo'); if @Funktion <> nil then begin
TRY Result := Funktion(TYPE_MASK_ALL, MODEL_MASK_LITE, nil, MAX_USB_DEVICES, @num_found, @type_array, @model_array, @prodcode_array, @dongle_number_array, @update_number_array); . . . . |
Beim ersten Aufruf bekomme ich 0 zurück, beim zweiten Aufruf 822.
Sollte nicht Beides gleich sein?
Was mache ich denn da falsch?
_________________ Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...
|
|
jjturbo
Beiträge: 516
Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
|
Verfasst: Mi 13.04.22 11:00
Aus der Dokumentation der DLL ist zu entnehmen, dass einer der ersten drei Parameter falsch sein soll....
_________________ Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...
|
|
jjturbo
Beiträge: 516
Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
|
Verfasst: Mi 13.04.22 11:40
Fehler gefunden: Bei der Deklaration von TFunktion fehlte "stdcall"
_________________ Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...
|
|
|