| 
| Autor | Beitrag |  
| jjturbo 
          Beiträge: 516
 
 Win2000 prof., WinXP prof.
 D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
 
 | 
Verfasst: Mi 13.04.22 09: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:
 
 | typeTFunktion = 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 10: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 10: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...
 |  |  |  |