![]() |
PChar in Delphi 7
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo, ich bin gerade dabei, einige SourceCodes, die noch für Delphi 3 entwickelt wurden, für Delphi 7 anzupassen. Dabei habe ich z.B. so etwas
Delphi-Quellcode:
Wenn ich die Warnungen Unsicherer Typ nicht ausschalte, bekomme ich immer folgende Warnung angezeigt.
Procedure xxx(sTx : AnsiString, sTit : AnsiString);
Begin if Application.MessageBox ( PChar(sTx), PChar(sTit), MB_OK ) = 0 then Begin End; End; [Warnung] xxx.pas(148): Unsicherer Typ 'PChar' Ich habe beim Googeln gefunden, daß das etwas mit .NET usw. zu tun hat. Ich kann auch die Warnung unterdrücken. Ich möchte aber gern wissen, wie ich Application.MessageBox korrekt ohne PChar aufrufen soll. In C++ benutze ich ja ausschliesslich PChar, d.h. einen NULL-terminierten String 'xxxxx',0x00. Das Programm selbst funktioniert einwandfrei. Die Delphi-7-Hilfe zeigt es ja so, wie ich es geschrieben habe, an. |
AW: PChar in Delphi 7
Schau mal hier:
![]() |
AW: PChar in Delphi 7
Delphi 7 hat einige Projektoptionen, die den Compiler ganz erheblich ausbremsen.
Dazu gehört diese Prüfung der "unsicheren Typumwandlung". Leider kann ich nicht genau sagen um welche Optionen es sich handelt; soweit ich mich erinnern kann stehen sie ganz am Anfang und am Ende der Optionenliste und es müssten einmal 3 und dann noch 6 Optionen sein. |
AW: PChar in Delphi 7
Liste der Anhänge anzeigen (Anzahl: 1)
Die Optionen sind ja schnell so eingestellt. Offernbar gibt es keine warnungsfreie Codiermöglichkeit. Wie ruft man denn in den neueren Delphi-Versionen Aplication.MessageBox auf ?
|
AW: PChar in Delphi 7
Am Aufruf hat sich nichts geändert:
![]() |
AW: PChar in Delphi 7
In Deiner Hilfe steht ja ebenfalls PChar, genau wie bei Delphi 7, die API-Funktion erwartet das auch so, egal ob Delphi, C++ oder irgend ein anderer Compiler.
Ich habe PChar mal durch PWideChar ersetzt, da bekomme ich folgenden Fehler. [Fehler] CompHKwPgm.pas(2448): Inkompatible Typen: 'WideChar' und 'Char' WideChar bedeutet eigentlich, daß pro Zeichen 2 Bytes benutzt werden, bei Char jeweils nur 1 Byte pro Zeichen. Application.MessageBox will doch Char und nicht WideChar. |
AW: PChar in Delphi 7
Du hast ja auch nach neueren Delphi-Versionene gefragt
|
AW: PChar in Delphi 7
Eben, mit PAnsiChar wird es funktionieren (in Delphi <= 2007).
|
AW: PChar in Delphi 7
Zitat:
Zitat:
|
AW: PChar in Delphi 7
Delphi-Quellcode:
ist ja bei neueren Versionen ein Alias für
PChar
Delphi-Quellcode:
. Früher war ein
PWideChar
Delphi-Quellcode:
das, was heute ein
PChar
Delphi-Quellcode:
ist.
PAnsiChar
Der Warnhinweis hat damit nichts zu tun, der möchte dir nur sagen "Vorsicht bei Zeigern". |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:01 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