Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi LPVoid > Delphi (https://www.delphipraxis.net/116289-lpvoid-delphi.html)

FrankBrin 26. Jun 2008 12:18


LPVoid > Delphi
 
Hallo miteinander,
übersetze gerade ein C Headerfile von einer DLL nach Delphi. Jetzt gibt es da ein Funktionsaufruf der so aussieht

BRADI_API BOOL WINAPI AdiGetKeyMatrix(LPVOID pKeyMatrix, DWORD Size);

Mein Problem ist nun diese LPVOID pKeyMatrix zu übersetzen. Es handelt sich hierbei um ein Array von max. 16 Byte, das von der Funktion beschrieben wird. Den Rest habe ich schonmal so übersetzt:

function AdiGetKeyMatrix( ???; Size: DWORD ): Boolean; stdcall ; external 'brADI.dll';

Wer kann mir da weiterhelfen?

Gruß
Frank

marabu 26. Jun 2008 12:27

Re: LPVoid > Delphi
 
Hallo Frank,

LPVOID entspricht Pointer. Wenn es sich um ein Array fester Länge handeln würde, dann hättest du wohl einen entsprechenden typisierten Pointer deklariert und verwendet. Vermutlich wird die wahre Größe im zweiten Parameter übergeben. Da ist es dann besser, wenn du einen typisierten Pointer auf das erste Element des Arrays übergibst. Du erreichst damit ein wenig Typsicherheit.

Freundliche Grüße

FrankBrin 26. Jun 2008 12:34

Re: LPVoid > Delphi
 
Hallo marabu,
versteh ich das jetzt richtig?
Einen typisierten Pointer machen

type pPointr: @LongWord;

und den in der Funktion übergeben - aber wie?

function AdiGetKeyMatrix( var pPointr ??? ; Size: DWORD ): Boolean; stdcall ; external 'brADI.dll';

Da bin ich mir jetzt nicht sicher

Danke schon mal
Frank

marabu 26. Jun 2008 12:37

Re: LPVoid > Delphi
 
Eher so:

Delphi-Quellcode:
const
  bradi = 'brADI.dll';
 
  function AdiGetKeyMatrix( pKeyMatrix: PLongWord; Size: DWORD ): Boolean; stdcall ; external bradi;

FrankBrin 26. Jun 2008 12:45

Re: LPVoid > Delphi
 
Danke marabu,
werd ich so mal einsetzen - zum Testen komm ich dann wohl erst morgen. Da sind noch 100000 andere Funktionen zum Übersetzen.

Gruß Frank

marabu 26. Jun 2008 13:23

Re: LPVoid > Delphi
 
100.000 Zeilen?

Donnerlittchen!

Vielleicht brauchst du da etwas Hilfe.

FrankBrin 26. Jun 2008 14:32

Re: LPVoid > Delphi
 
Danke für den Tipp, aber der konvertiert wie alle anderen Konverter auch nur Müll!

Mittlerweile habe ich dann auch die Datei von Hand übersetzt, zum Glück waren das Meiste an dem Headerfile nur Kommentare.

Gruß
Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz