![]() |
PAnsiChar konvertierung schlägt fehl
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen
Ich versuche dieses Projekt in meinem zu integrieren: ![]() Ich verwende Delphi XE7 Starter und habe deshalb auch das Problem mit dem PAnsiChar und PChar gehabt. Nach einigem Anpassen gings schon fast. Nun habe ich das Problem, dass diese Codezeile:
Delphi-Quellcode:
Ergibt nur "F" (meine Applikation liegt auf F:/...
var argv:PPAnsiChar;
... argv[0] := PAnsiChar(paramstr(0)); Jedoch ergibt
Delphi-Quellcode:
Das korrekte. Nämlich "-sDEVICE=jpeg"
argv[1]:=PAnsiChar('-sDEVICE=jpeg')
Das selbe Problem hier:
Delphi-Quellcode:
Anbei ein Screenshot in welchem man links die Variablen sehen kann.
argv[4+i]:=PAnsiChar(
'-sOutputFile=' + ExportPath + '\' + ExportFile + '%03d.' + typ ); Kann mir hier jemand weiterhelfen? Danke schonmal |
AW: PAnsiChar konvertierung schlägt fehl
Es handelt sich hierbei um keine Konvertierung, sondern eine Interpretation: Betrachte das folgende als eine Zeiger auf ein AnsiChar.
|
AW: PAnsiChar konvertierung schlägt fehl
Vielen Dank für deine Antwort.
Nun dann müsste das ja eigentlich so funktionieren. Oder übersehe ich da was? |
AW: PAnsiChar konvertierung schlägt fehl
Ja. Bei UTF16 hat jedes Zeichen 16 Bit. Bei Zeichen, die es auch bei ANSI gibt ist das 2. Byte dann #0, was bei einem AnsiString das Stringende bedeutet.
|
AW: PAnsiChar konvertierung schlägt fehl
Zitat:
Aber leider weiss ich noch nicht wass es in meinem Fall für einen Workaround braucht. Leider ist mein Wissen dahingehend noch zu wenig gewachsen. PPansiChar ist übrigens ein Array of PAnsiChar. |
AW: PAnsiChar konvertierung schlägt fehl
Als Ziel ein PWideChar verwenden (wenn möglich)
oder den String erst in einen AnsiString und dann PAnsiChar umwandeln? Vorallem niemals ANSI mit Unicode mischen, und gefälligst auf deinen Compilier hören, wenn er dir das auch laut und deutlich sagt. :!: String -> PChar AnsiString -> PAnsiChar WideString/UnicodeString -> PWideChar |
AW: PAnsiChar konvertierung schlägt fehl
Wenn man sicher sein kann, dass keine wirklichen 16Bit Zeichen auftreten könnte man jeweils nur das 1. Byte verwenden oder man geht den weg über UTF8.
Versuch es mal mit:
Delphi-Quellcode:
var argv:PPAnsiChar;
... argv[0] := PAnsiChar( Utf8Encode(paramstr(0))); |
AW: PAnsiChar konvertierung schlägt fehl
Vielen Dank für eure Antworten.
Ich habe nun alles auf PWideChar geändert. Nun funktioniert mal dieses eine Problem. Nun bekomme ich jedoch den Error "**** Unable to open the display device, quitting." Das ist jedoch eine neue Baustelle... Danke euch! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 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