AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

PChar in Delphi 7

Ein Thema von kwhk · begonnen am 12. Jul 2013 · letzter Beitrag vom 12. Jul 2013
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von kwhk
kwhk

Registriert seit: 25. Mär 2009
Ort: Dresden
168 Beiträge
 
Delphi 10.3 Rio
 
#11

AW: PChar in Delphi 7

  Alt 12. Jul 2013, 13:51
Zitat:
Der Warnhinweis hat damit nichts zu tun, der möchte dir nur sagen "Vorsicht bei Zeigern".
Das ist ja nett von dem Warnhinweis. Aber das hättest der denen sagen mussen, die PChar-Zeiger als Parameter für MessageBox haben wollen, und nicht denen, die bei der Nutzung einer derartigen Funktion eben solche Pointer angeben müssen und gar keine andere Wahl haben, egal ob AnsiString oder WideString.
Wenn ich PChar(txt) übergeben und txt ist selbst als String oder AnsiString (also als ein Delphistring mit Länge ohne abschließendes Hex-00) vereinbart, dann macht ja Delphi die Anpassung - was soll dabei schief gehen ? Wenn man die Texte direkt als Literal angibt ( ' Hallo AnsiString' ), dann kommt ja keinerlei Warnhinweis, intern muss das aber auch in einen Pointer konvertiert werden.
Hartmut

Geändert von kwhk (12. Jul 2013 um 13:58 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: PChar in Delphi 7

  Alt 12. Jul 2013, 13:56
Die, die den PChar haben wollen, sitzen bei Microsoft, denn intern wird ja nur die Win-API-Funktion MessageBox aufgerufen. Und die Meldung kommt ja nur, weil Zeigertypen in .NET eben unmanaged sind und somit als unsicher gelten. Kommen diese Meldungen denn immer noch, trotz Optionen bzw. Compilerschalter?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von kwhk
kwhk

Registriert seit: 25. Mär 2009
Ort: Dresden
168 Beiträge
 
Delphi 10.3 Rio
 
#13

AW: PChar in Delphi 7

  Alt 12. Jul 2013, 14:07
Und die, die .NET immer weiter entwickeln und anwenden, sitzen ja auch bei Microsoft. Ist da ein Problem LINKE und RECHTE Hand. Was der eine macht, wird von dem anderen reklamiert.

Wenn ich die Warnungen ausschalte, kommen sie natürlich nicht. Aber eigentlich sind Warnungen ja etwas sehr Sinnvolles, nur wenn sie dort kommen, wo es gar nicht anders zu machen geht, dann sind sie nicht sinnvoll. Beim Ausschalten, sind auch alle anderen Warnungen weg, die evtl. sinnvoll wären.
Hartmut

Geändert von kwhk (12. Jul 2013 um 14:12 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: PChar in Delphi 7

  Alt 12. Jul 2013, 14:26
Aber speziell diese Warnungen sind AFAIK für eine gemeinsame Codebasis von Win32- und .NET-Programmen gedacht gewesen. Da man aber mit Delphi 7 sowieso keine .NET-Programme schreiben kann (dafür bekam man ja mal Delphi 8 im Bundle dazu), sind sie eher hinderlich als nützlich.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#15

AW: PChar in Delphi 7

  Alt 12. Jul 2013, 14:33
Beim Ausschalten, sind auch alle anderen Warnungen weg, die evtl. sinnvoll wären.
Und welche wären das? Entweder "Vorsicht bei Zeigern" oder nicht. Woher soll der Compiler denn wissen, wo Zeiger dir deiner Meinung nach gefährlich werden und wo nicht? An oder aus. Komplizierter muss man es doch wirklich nicht machen

Es ist doch nicht so, dass man auf andere Warnungen ("Methode X überdeckt Methode Y", ...) verzichten müsste, nur wenn nicht bei Zeigern, die in der .NET-Welt als "unsicher" gelten, gewarnt werden soll.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: PChar in Delphi 7

  Alt 12. Jul 2013, 14:38
Genau, Warnungen, die mich gar nicht betreffen, möchte ich auch nicht sehen. Oder was würdest Du von einem Schild im Oberhemd denken, auf dem steht "Achtung: Kleidung nicht am Körper bügeln" (das soll es tatsächlich geben)?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#17

AW: PChar in Delphi 7

  Alt 12. Jul 2013, 14:47
Wenn Du Dir eine Stelle im Programm angesehen hast und diese als nicht "gefährlich" geprüft hast, kannst Du das doch auch so machen:
Delphi-Quellcode:
{$WARNINGS OFF}
   Application.MessageBox(PChar('Hallo'), PChar('Hallo'));
{$WARNINGS ON}
Oder unter neueren Delphi Versionen:
{$WARN UNSAFE_TYPE OFF}
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von kwhk
kwhk

Registriert seit: 25. Mär 2009
Ort: Dresden
168 Beiträge
 
Delphi 10.3 Rio
 
#18

AW: PChar in Delphi 7

  Alt 12. Jul 2013, 14:48
Ich glaube, um es Warnungsfrei und 100% korrekt zu machen, müsste man den Delphi-String in seiner belegten Länge in ein Char-Array eintragen, nach dem letzten String-Zeichen ein Hex-00 dahinterschreiben und den Zeiger auf das erste Zeichen des Arr als PChar übergeben. Ich vermute, daß Delphi das beim Ausdruck PChar(stringvariable) so ähnlich macht, also temporär den String umkopiert und mit Hex-00 abschließt. Funktionieren tut es jedenfalls. Wenn man es bewußt selbst macht, dann wäre es warnungsfrei korrekt.
Hartmut
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

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

AW: PChar in Delphi 7

  Alt 12. Jul 2013, 14:56
Aber speziell diese Warnungen sind AFAIK für eine gemeinsame Codebasis von Win32- und .NET-Programmen gedacht gewesen. Da man aber mit Delphi 7 sowieso keine .NET-Programme schreiben kann (dafür bekam man ja mal Delphi 8 im Bundle dazu), sind sie eher hinderlich als nützlich.
Genau.
Deshalb diese "Unsafe" Meldungen abschalten.
http://www.delphisources.ru/pages/fa...fig01_10_0.jpg

Und zusätzlich die ersten 6 Meldungen ("Deprecated Symbol" bis "Deprecated Unit") ebenfalls abschalten.
http://www.rsdn.ru/article/Delphi/De...hi_7_07_13.png (im diesem Bild sind sie allerdings noch aktiv)
fork me on Github
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: PChar in Delphi 7

  Alt 12. Jul 2013, 15:04
Exakt, das sind noch die Kylix-Altlasten. Irgendwie wird die Liste der gestorbenen Projekte immer länger, mal sehen, wie sich der Feueraffe bewähren wird.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 20:04 Uhr.
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