Autor Beitrag
jjturbo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 516

Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
BeitragVerfasst: Mi 13.04.22 10:37 
Moin Forum,

dieser Aufruf funktioniert:
ausblenden 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; stdcallexternal '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:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 516

Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 516

Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
BeitragVerfasst: 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...