![]() |
Delphi-Version: 2009
Chr() - Probleme mit Variable
Hallo DP,
ich hab folgendes: Ich hab eine Funktion, die ein PWideChar möchte. Ich muss aber jetzt nur eine 1 senden. Das mache ich mit Funktionxy(Chr(1)). Soweit funktioniert alles auch. Wenn ich aber das jetzt mit einer Variable machen will, dann funktioniert das nicht (Funktionxy(Chr(i)). Die Variable hat bekommt in einer Schleife die Werte von 0 bis 4. Wenn ich das nun mit der Variable machen will, dann bekomme ich den Error: Inkompatible Typen: 'Char' und 'PWideChar' Wie muss ich das jetzt machen, dass das mit der Variable funktioniert? Danke schonmal. |
AW: Chr() - Probleme mit Variable
Wie schaut der Quellcode (mit variablendefiniton) aus?
Probier mal statt Chr(i) PWideChar(i) |
AW: Chr() - Probleme mit Variable
Also der Code wär eigentlich so:
Delphi-Quellcode:
Mit PWideChar kann ich es compilieren aber beim ausführen bekomm ich eine AV. Das einzigste was geht ist mit der Konstanten und mit Chr()
for I := 0 to 4 do
begin USB_LCD_Command(128,0); USB_LCD_Data(Chr(i),1,0); sleep(250); end; |
AW: Chr() - Probleme mit Variable
Man braucht einfach nur eine Zwischenvariable:
Delphi-Quellcode:
Ein direkter Cast wie z.B. PWideChar(i) kann nach hinten losgehen, denn wenn i=1 dann ist PWideChar(i) gleich $00000001 (also ein Zeiger der auf die Adresse 1 zeigt). ==> Zugriffsverletzung
var
zeichen : Char; begin ... zeichen := Chr(i); Funktionxy(@zeichen); Was aber gebraucht wird ist ein Zeiger, der auf einen 2-Byte Speicherplatz zeigt, dessen Inhalt = 1 ist. Also könnte man auf die Idee kommen PWideChar(@i) zu übergeben. Ein Integer ist aber 4 Bytes lang und man ist dann abhängig von der CPU-Architektur (Big-Endian vs. Small-Endian). Mit einer Zwischenvariablen erspart man sich die ganzen Probleme. |
AW: Chr() - Probleme mit Variable
Versuch mal
Delphi-Quellcode:
PWideChar( Chr(i))
|
AW: Chr() - Probleme mit Variable
Funktioniert. Danke. :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 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