Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Chr() - Probleme mit Variable

  Alt 27. Dez 2010, 18:12
Man braucht einfach nur eine Zwischenvariable:
Delphi-Quellcode:
var
  zeichen : Char;
begin
  ...
  zeichen := Chr(i);
  Funktionxy(@zeichen);
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
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.
  Mit Zitat antworten Zitat