AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Chr() - Probleme mit Variable

Ein Thema von Muellermilchtrinker · begonnen am 27. Dez 2010 · letzter Beitrag vom 27. Dez 2010
Antwort Antwort
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.224 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Chr() - Probleme mit Variable

  Alt 27. Dez 2010, 16:54
Wie schaut der Quellcode (mit variablendefiniton) aus?

Probier mal statt Chr(i) PWideChar(i)
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Muellermilchtrinker
Muellermilchtrinker

Registriert seit: 1. Aug 2009
447 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Chr() - Probleme mit Variable

  Alt 27. Dez 2010, 17:03
Also der Code wär eigentlich so:
Delphi-Quellcode:
  for I := 0 to 4 do
  begin
    USB_LCD_Command(128,0);
    USB_LCD_Data(Chr(i),1,0);
    sleep(250);
  end;
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()
Chuck Norris doesn't need backups. He just uploads his files and lets the world mirror them.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.879 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Chr() - Probleme mit Variable

  Alt 27. Dez 2010, 17:13
Versuch mal
PWideChar( Chr(i))
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

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

AW: Chr() - Probleme mit Variable

  Alt 27. Dez 2010, 17: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
Benutzerbild von Muellermilchtrinker
Muellermilchtrinker

Registriert seit: 1. Aug 2009
447 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Chr() - Probleme mit Variable

  Alt 27. Dez 2010, 17:15
Funktioniert. Danke.
Chuck Norris doesn't need backups. He just uploads his files and lets the world mirror them.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:04 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