Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C++ Funktionskopf nach Delphi (nur der Kopf) (https://www.delphipraxis.net/201024-c-funktionskopf-nach-delphi-nur-der-kopf.html)

DieDolly 17. Jun 2019 08:17


C++ Funktionskopf nach Delphi (nur der Kopf)
 
Ich kenne mich mit C++ überhaupt nicht aus. Dies und das kann man noch erraten aber wie muss denn sowas hier in Delphi aussehen?
Code:
int32_t __stdcall GetMemA(void* Mem, size_t Size)
Mem ist laut Doku ein memory buffer. Aber was heißt das alles übersetzt nach Delphi?

Ich habe auch ein paar Methoden wo void** steht statt void*.

mkinzler 17. Jun 2019 08:29

AW: C# Funktionskopf nach Delphi (nur der Kopf)
 
Das siehtr eher nach C++ aus. Der * steht für einen Zeigertyp

EWeiss 17. Jun 2019 08:52

AW: C# Funktionskopf nach Delphi (nur der Kopf)
 
Delphi-Quellcode:
Function GetMemA(Mem: Pointer; Size: TSize): Int32;


gruss

Der schöne Günther 17. Jun 2019 09:14

AW: C# Funktionskopf nach Delphi (nur der Kopf)
 
Delphi-Quellcode:
size_t
ist sicher nicht Delphis TSize sondern ein unsigned int für Indizes. Ich hätte gesagt das Delphi-Gegenstück ist NativeUInt.

DieDolly 17. Jun 2019 10:02

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Ich habe den Tite korrigiert. Es ist C++, kein C#.

Die Paremeterbeschreibung lautet
Zitat:

Parameters:
Mem - Pointer to a memory block that should be checked (must not be nil)
Size - Size of the memory block in bytes
Die ganze Unit gibt es hier (mehr Kommentare als Code):
https://github.com/CaptainFlint/wcx_...II_Decrypt.cpp

Hier habe ich etwas hoffentlich Nützliches gefunden. Vielleicht auch für andere. Ich kopiere es mal raus für den Fall, dass die Doku offline ist.
size_t ist aber nicht in der Liste. Sollte vielleicht hinzugefügt werden. Denn wie Der schöne Günther sagt, entspricht es einem NativeUInt was auch hier genau so steht
https://www.delphipraxis.net/190880-...er-delphi.html

void** steht leider auch nicht drin.
Code:
Below is a list of Delphi data types and the corresponding C++ data types:

Delphi type                    Platform   Corresponding C++ type

Boolean (Delphi)               bool (C++)
ShortInt (Delphi)              ShortInt, signed char (C++)
SmallInt (Delphi)              short (C++)
Integer (Delphi)               int (C++)
Byte (Delphi)                  Byte (C++)
Word (Delphi)                  Word (C++)
Cardinal (Delphi)              unsigned (C++)
Int64 (Delphi)                 __int64 (C++)
UInt64 (Delphi)                unsigned __int64 (C++)
NativeInt (Delphi) 32-bit Win  int (C++)
                    64-bit Win __int64 (C++)
                    64-bit iOS long (C++)
NativeUInt (Delphi) 32-bit     unsigned (C++)
                    64-bit Win unsigned __int64 (C++)
                    64-bit iOS unsigned long (C++)
Single (Delphi)                float (C++)
Double (Delphi)                double (C++)
Extended (Delphi)              Extended (C++)
Currency (Delphi)              Currency, CurrencyBase (C++)
Comp (Delphi)                  Comp, CompBase (C++)
Real (Delphi)                  double (C++)
ShortString (Delphi)           ShortString, ShortStringBase (C++)
OpenString (Delphi)            OpenString (C++)
File (Delphi)                  file (C++)
Text (Delphi)                  TextFile (C++)
ByteBool (Delphi)              ByteBool (C++)
WordBool (Delphi)              WordBool (C++)
LongBool (Delphi)              BOOL (C++)
Real48 (Delphi)                not supported in C++
Pointer (Delphi)               void* (C++)
PWideChar (Delphi)             WideChar* (C++)
PAnsiChar (Delphi)             char* (C++)
Variant (Delphi)               defined in sysvari.h (C++)
OleVariant (Delphi)            defined in sysvari.h (C++)
LongInt (Delphi)               int (C++)
                     64-bit iOS long (C++)
LongWord (Delphi)              unsigned (C++)
                     64-bit iOS unsigned long (C++)
FixedInt (Delphi)              int (C++)
FixedUInt (Delphi)             unsigned int (C++)
TextFile (Delphi)              TextFile (C++)

    Note: 32-bit platforms include 32-bit Windows, OSX32, 32-bit iOS, and Android.

Schokohase 17. Jun 2019 10:32

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Zitat:

Zitat von DieDolly (Beitrag 1434782)
Ich habe auch ein paar Methoden wo void** steht statt void*.

C++: Was bedeutet void**?

DieDolly 17. Jun 2019 10:35

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Zitat:

und ein void** ist dann ein Zeiger auf einen void*.
Ein Pointer auf einen Pointer?

Schokohase 17. Jun 2019 10:38

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Zitat:

Zitat von DieDolly (Beitrag 1434800)
Zitat:

und ein void** ist dann ein Zeiger auf einen void*.
Ein Pointer auf einen Pointer?

Der Kandidat erhält 100 Punkte

DieDolly 17. Jun 2019 10:38

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Zitat:

Zitat von Schokohase (Beitrag 1434801)
Der Kandidat erhält 100 Punkte

Du kannst mir 200 gleich dafür wieder abziehen

Code:
int32_t __stdcall DecodeMemoryHelper(void* Input, size_t InSize, void* Output, size_t* OutSize, void** Helper) { return 0; }
Delphi-Quellcode:
function DecryptAndDecodeMemoryHelper(Input: Pointer; InSize: NativeUInt; Output: Pointer; OutSize: NativeUInt; Helper: ??? ^Pointer): Integer;



In der System.pas finde ich zwar Hilfe zu void * aber nicht zu void **

Edit
size_t steht da in der Winapi.Windows.pas drin als ULONG_PTR was wieder ein NativeUInt ist.

Der schöne Günther 17. Jun 2019 10:40

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Komm!

Wenn void* ein Pointer ist, dann ist void** wohl ein PPointer, oder? 😎


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:43 Uhr.
Seite 1 von 2  1 2      

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