Forum: Sonstige Fragen zu Delphi
Delphi
by sx2008,
3. Aug 2009
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:...
Forum: Sonstige Fragen zu Delphi
Delphi
by sx2008,
3. Aug 2009
Der Datentyp für "Errorcode" passt auch nicht ganz:
function Unlock_Device(net_id: Byte; szPassword: PChar; var Errorcode: Byte):
integer; stdcall; external 'EASY_COM.DLL' name 'Unlock_Device';
Forum: Sonstige Fragen zu Delphi
Delphi
by sx2008,
3. Aug 2009
Wieso hat der Parameter szPassword den Datentyp "string"?
Der Prefix sz bedeutet "C-string, zero terminated".
Die Entsprechung in Delphi ist PChar:
function Unlock_Device(net_id: Byte; szPassword: PChar; Errorcode: Pointer):
integer; stdcall; external 'EASY_COM.DLL' name 'Unlock_Device';