Einzelnen Beitrag anzeigen

MiniMatrix

Registriert seit: 5. Feb 2010
16 Beiträge
 
#7

Re: C nach Delphi (Pascal) Konvertierungsproblem

  Alt 2. Mär 2010, 12:55
So, ich habe das Problem gelöst:

Als erstes habe ich die Definition des Datentyps für den Parameter "argv" umgestellt und erweitert:

Delphi-Quellcode:
type
  ppArgv = ^pArgv;
  pArgv = ^TArgv;
  TArgv = array of pointer;
und den Parameter definiert als:

argv: ppArgv;


Der weitere Zugriff erfolgt nun über:

Delphi-Quellcode:
  pData := pChar( argv^ ); {* Get pointer to data    *}

  ...

  pData := pData + System.SizeOf( WORD ); {* Step past the datatype word         *}
  pData := pData + System.SizeOf( LIST ); {* and step past the list header.      *}

  FileNameLen:= pWORD( pData )^; {* Save length of filename.            *}
  pData := pData + System.SizeOf( WORD ); {* Step past filename length           *}
  pFileName := pData; {* Save pointer to database file name. *}
  pData := pData + FileNameLen;

  pData := pData + System.SizeOf( WORD ); {* Step past the datatype word         *}
  pData := pData + System.SizeOf( LIST ); {*   and step past the list header.    *}

  KeyLen:= pWORD( pData )^; {* Save length of key.                 *}
  pData := pData + System.SizeOf( WORD ); {* Step past key length                *}
  pKey := pData;
  pData := pData + KeyLen;
Einziger Wehrmutstropfen ist, dass die Information bezüglich des Array's in C verloren geht. Aber eventuell gibt es ja jemanden, der hierzu noch eine Idee hat.
  Mit Zitat antworten Zitat