AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Cpp nach Delphi übersetzung
Thema durchsuchen
Ansicht
Themen-Optionen

Cpp nach Delphi übersetzung

Ein Thema von Horst0815 · begonnen am 3. Nov 2015 · letzter Beitrag vom 3. Nov 2015
Antwort Antwort
Horst0815

Registriert seit: 23. Mai 2011
Ort: Görlitz
150 Beiträge
 
Delphi XE Starter
 
#1

AW: Cpp nach Delphi übersetzung

  Alt 3. Nov 2015, 10:58
wie übersetz ichs dann?
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.114 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Cpp nach Delphi übersetzung

  Alt 3. Nov 2015, 11:02
Du wirst in deinem C-Code irgendwo wohl etwas wie
Code:
typedef unsigned char byte;
drin haben, oder?

Ich glaube an einfachsten fährst du nicht mit Byte Char-Arrays, sondern dem Delphi-Typen PChar bzw. in diesem Fall wohl PAnsiChar .
  Mit Zitat antworten Zitat
Horst0815

Registriert seit: 23. Mai 2011
Ort: Görlitz
150 Beiträge
 
Delphi XE Starter
 
#3

AW: Cpp nach Delphi übersetzung

  Alt 3. Nov 2015, 11:09
in der Tat

Code:
#define dword unsigned int
#define word unsigned short
aber nix mit byte


ja hatte es bisher mit PChar umgesetzt wollt nur sicher gehen
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.114 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Cpp nach Delphi übersetzung

  Alt 3. Nov 2015, 11:19
Das define/typedef kommt möglicherweise aus einem Import. Aber es geht doch um ein Delphi in welchem ein Char größer als ein Byte ist, richtig? Dann wäre PAnsiChar doch das richtige.
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#5

AW: Cpp nach Delphi übersetzung

  Alt 3. Nov 2015, 11:20
mein Delphi ab 2007 kennt PByteArray, was man überall wo in Cpp mit BYTE* gearbeitet wird in Delphi verwenden kann.

Da in CPP gerne mit BYTE Arrays für normale nicht UniCode Zeichenketten(= Zeichenarrays) gearbeitet wird, sollte man bei CPP->Delphi Vorhaben sich mal solche 3 Hilfsfunktionen in Delphi basteln. Ich habe das schmutzig für UniCode XE selbst per jedem 2. Byte gelöst, weil ich leider noch kein auf für FMX OutOfTheBox portables Beispiel für Delphi UnicodeString <-> UTF8ByteArray gefunden habe. TEncoding wäre da ja dafür wohl gedacht, aber ich habe es noch nicht geschafft, meine 3 simplen Funktionen per TEncoding zu realisieren...

function TXTstringToPByteArray(const value:string; const baUTF8 : PByteArray; const maxlen:Integer):Integer;
function PByteArrayToTXTstring(var value:string; const baUTF8 : PByteArray; const maxlen:Integer):Integer; overload;
function PByteArrayToTXTstring(const baUTF8 : PByteArray; const maxlen:Integer):string; overload;

Sollte es jemanden geben, der die paar Zeilen mit TEncoding für UniCodeString<->UTF8ByteArray griffbereit oder im Gedächtnis hat, wäre das auch hier sicher helfen
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Cpp nach Delphi übersetzung

  Alt 3. Nov 2015, 12:01
Sollte es jemanden geben, der die paar Zeilen mit TEncoding für UniCodeString<->UTF8ByteArray griffbereit oder im Gedächtnis hat, wäre das auch hier sicher helfen
Meinst du so etwas?
Delphi-Quellcode:
program dp_187166;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.Generics.Collections,
  System.SysUtils;

function PByteArrayToString( const Data: PByteArray; const DataCount: Integer; const Encoding: TEncoding ): string;
var
  buffer: TBytes;
begin
  SetLength( buffer, DataCount );
  TArray.Copy<Byte>( Data^, buffer, DataCount );
  Result := Encoding.GetString( buffer );
end;

procedure Main;
const
  expectedStr = 'foobar';
var
  buffer : TArray<Byte>;
  actualStr: string;
begin
  buffer := TEncoding.UTF8.GetBytes( expectedStr );
  actualStr := PByteArrayToString( @buffer[ 0 ], Length( buffer ), TEncoding.UTF8 );
  Assert( actualStr = expectedStr );
end;

begin
  try
    Main;
  except
    on E: Exception do
      Writeln( E.ClassName, ': ', E.Message );
  end;

end.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Horst0815

Registriert seit: 23. Mai 2011
Ort: Görlitz
150 Beiträge
 
Delphi XE Starter
 
#7

AW: Cpp nach Delphi übersetzung

  Alt 3. Nov 2015, 12:43
Danke für alle Tips und Vorschläge
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#8

AW: Cpp nach Delphi übersetzung

  Alt 3. Nov 2015, 13:34
..."Meinst du so etwas?"...

ja genau sowas meinte ich... damit kann ich meinen Code etwas mit Delphi-Like bekommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:26 Uhr.
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