Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi chr Funktion in Delphi 2009 (https://www.delphipraxis.net/151693-chr-funktion-delphi-2009-a.html)

roadrunner-S51 28. Mai 2010 09:29

Re: chr Funktion in Delphi 2009
 
Also müsste ich das AnsiChar-Feld UsedComm in einen PWideChar wandeln und alles wäre super?

Neutral General 28. Mai 2010 09:31

Re: chr Funktion in Delphi 2009
 
Hallo,

Also du müsstest (wahrscheinlich) den Pointer auf das 5 Element (Index 4) auf einen PWideChar casten:

Delphi-Quellcode:
Result:=GetDefaultCommConfig(PWideChar(@UsedComm[4]),CommConfig,i) or GetDefaultCommConfig(UsedComm,CommConfig,i);

roadrunner-S51 28. Mai 2010 09:35

Re: chr Funktion in Delphi 2009
 
Wenn ich das richtig verstehe will der Code aber das ganze Feld übergeben, oder? Das heißt ich müsste alle Elemente casten?

Neutral General 28. Mai 2010 09:38

Re: chr Funktion in Delphi 2009
 
Ich weiß ja nicht genau was die Funktion haben will und was in dem Array drin steht.

Aber PWideChar(UsedComm[4]) ist quasi der String ab dem 5. Zeichen.

D.h.

Delphi-Quellcode:
var: S: Array[0..10] of AnsiChar;
begin
  S := 'Hallo Welt'; // Mal vereinfacht geschrieben. Nur zur Verdeutlichung
  PWideChar(@S[4]) ==> 'o Welt'
end;

roadrunner-S51 28. Mai 2010 09:43

Re: chr Funktion in Delphi 2009
 
Danke für den Hinweis mit dem @!
Habe den Code nun so geändert:
Delphi-Quellcode:
Result:=GetDefaultCommConfig(PWideChar(@UsedComm[4]),CommConfig,i) or
          GetDefaultCommConfig(PWideChar(@UsedComm[0]),CommConfig,i);
Also müsste im ersten Teil, wie auch im Beipiel von NeutralGeneral das Feld ab dem 5. Element und im zweiten Teil das komplette Feld (ab dem 0. Element) konvertiert werden.

Ich jage das ganze dann nochmal durch den Debugger, mal schauen ob das so passt.

Erstmal danke an alle!
:thumb:

roadrunner-S51 31. Mai 2010 10:21

Re: chr Funktion in Delphi 2009
 
Nach ausführlicher Prüfung und einem halben Nervenzusammenbruch habe ich nun den Fehler im Code gefunden. Mein Versuch, das AnsiString-Feld in eine PWideChar zu wandeln, lief einfach nicht so.

Leider besteht das Problem der Konvertierung immernoch und ich weiß leider nur, dass es so
Delphi-Quellcode:
H:=CreateFile(PWideChar(@UsedComm[0]),
    GENERIC_READ or GENERIC_WRITE,
    0,
    nil,
    OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL or FILE_FLAG_OVERLAPPED,
    0);
nicht geht.

Hat jemand eine bessere und vor allem funktionierende Idee?

mkinzler 31. Mai 2010 10:30

Re: chr Funktion in Delphi 2009
 
Einfach PAnsiChar verwenden

Neutral General 31. Mai 2010 10:31

Re: chr Funktion in Delphi 2009
 
Hattest du es mal mit:

Delphi-Quellcode:
PChar(String(AnsiString(@UsedComm[0])))
versucht?

roadrunner-S51 31. Mai 2010 10:38

Re: chr Funktion in Delphi 2009
 
Alles was mein Delphi dazu zu sagen hat ist leider:
[DCC Fataler Fehler] Autofrett.dpr(1): F2084 Interner Fehler: AV0529AB9B-R00000001-0

Neutral General 31. Mai 2010 10:45

Re: chr Funktion in Delphi 2009
 
:mrgreen:

Also bei mir compiliert das ohne Probleme. Habe D2009.

Versuch vllt. mal nur:

Delphi-Quellcode:
PChar(String(@UsedComm[0]))


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:09 Uhr.
Seite 2 von 3     12 3      

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