Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#6

Re: DLL funktion wohl nicht ganz korrekt nach Delphi portier

  Alt 3. Aug 2009, 03:53
Zitat von FriFra:
Doch, der passt schon... Das muss ein Pointer auf den entspr. Rückgabewert sein.
Ein Parameter mit dem Schlüsselwort var wird als Zeiger übergeben.
Der Vorteil dabei ist aber die Typsicherheit.
Ein Pointer kann auf alles Mögliche zeigen; ein var-Parameter hat aber einen festgelegten Datentyp (hier: Byte)
und es ist garantiert, dass der Zeiger der übergeben wird auf eine gültige Speicherstelle zeigt.

Wenn man's ganz genau nimmt, müsste man einen out-Parameter verwenden:
Delphi-Quellcode:
function Unlock_Device(net_id: Byte; szPassword: PChar; out Errorcode: Byte):
  integer; stdcall; external 'EASY_COM.DLLname 'Unlock_Device';
Im Prinzip das Gleiche wie der var-Parameter, nur weiss der Compiler jetzt, dass Errorcode nach Aufruf der Funktion
einen Wert bekommen hat und gibt keine Warnung aus.
Die Delphi-Deklaration ist genau passend zu der VB-Deklaration.
Schieb doch noch die Deklaration für C nach (steht in irgendeinem *.h File).
Der Fehler muss jetzt wo anderst liegen (falsche net_id, falsches Passwort ?).
fork me on Github
  Mit Zitat antworten Zitat