Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - ERROR_INVALID_PARAMETER beim Aufruf einer DLL-Funktion


Tino - So 17.08.03 18:34
Titel: ERROR_INVALID_PARAMETER beim Aufruf einer DLL-Funktion
Hallo Leute,

ich habe ein kleines Problem beim importieren einer Funktion aus einer DLL.

Die Typen sind wie folgt definiert:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
type
  _TESTINFO = record
    dwValue1: ULONG;
    dwValue2: array [0..5of ULONG;
  end;
  
  TESTINFO = _TESTINFO;
  
  PTESTINFO = ^TESTINFO;
  
  TTestInfo = TESTINFO;
  
{...}

function GetTestInfo (szFilePath: LPCWSTR; dwStep: DWORD; pInfo: PTESTINFO): UINT; stdcall;

Ich habe die Funktion nun wie folgt aufgerufen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
Var
  Info: TTestInfo;
Begin
  FillChar (Info, SizeOf (Info), 0);
  
  GetTestInfo ('c:\test.exe'0, @Info);

Nach dem Aufruf bekomme ich allerdings als Funktionsergebnis ERROR_INVALID_PARAMETER zurück.

Kann mir jemand helfen und mir sagen ob ich die Parameter (wahrscheinlich den Parameter Info) falsch übergebe.

Danke

Gruß
Tino


AndyB - So 17.08.03 22:13



Ohne die C-Header Datei kann man da recht wenig sagen.


Tino - Mo 18.08.03 08:16

Hallo Andy!

AndyB hat folgendes geschrieben:
Stimmt die Ausrichtung des Records mit dem der DLL überein?

Der Delphi-Code der die Typen definiert ist nicht von mir sondern von dem Hersteller. Deshalb gehe ich davon aus das diese richtig definiert sind.
AndyB hat folgendes geschrieben:
Ist bei dwStep eine 0 erlaubt?

Ja.
AndyB hat folgendes geschrieben:
Funktioniert es, wenn du die Funktion aus einem C Programm heraus aufrufst?

Kann ich leider nicht testen. Aber die Funktion muss funktionieren da sie schon von anderen Programmierern benutzt wird.

Gruß
Tino