Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   unsafe code (https://www.delphipraxis.net/131147-unsafe-code.html)

EWeiss 19. Mär 2009 15:20


unsafe code
 
Wenn ich unter Compiler Messagen Unsafe Code aktiviere
bekomme ich jede menge dieser Warnungen.

[Pascal Warning] Winamp_Service.pas(270): W1047 Unsafe code '@ operator'
Delphi-Quellcode:
(LoadStringA(Instance^, ID^, @Buffer_A[0], SizeOf(Buffer_A) - 1) <> 0) then
Wie kann ich das korrigieren?

gruss Emil

DP-Maintenance 19. Mär 2009 15:22

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Delphi-Frage

Bernhard Geyer 19. Mär 2009 15:22

Re: unsafe code
 
Zitat:

Zitat von EWeiss
Wenn ich unter Compiler Messagen Unsafe Code aktiviere
bekomme ich jede menge dieser Warnungen.

...

Wie kann ich das korrigieren?

Einfach Schalter wieder deaktivieren.
Mit dem Tod von VCL.NET und WinForms in Delphi ist dieser Schalter auch tod. ist nur für eine .NET-Portierungs-Vorbereitung relevant.

EWeiss 19. Mär 2009 15:28

Re: unsafe code
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von EWeiss
Wenn ich unter Compiler Messagen Unsafe Code aktiviere
bekomme ich jede menge dieser Warnungen.

...

Wie kann ich das korrigieren?

Einfach Schalter wieder deaktivieren.
Mit dem Tod von VCL.NET und WinForms in Delphi ist dieser Schalter auch tod. ist nur für eine .NET-Portierungs-Vorbereitung relevant.

Und das selbe gilt dann für "unsafe Type" und "unsafe Typecast".
Wurden die in D2009 entfernt ? Oder immer noch drin.
Frage mich was das für einen sinn macht ohne Funktion.

Hatte ihn bisher auch aus
Aber selbst bei warnungen bin ich vorsichtig.

gruss Emil

Bernhard Geyer 19. Mär 2009 15:35

Re: unsafe code
 
Zitat:

Zitat von EWeiss
Und das selbe gilt dann für "unsafe Type" und "unsafe Typecast".

"unsage" -> Managed Laufzeitumgebund

Zitat:

Zitat von EWeiss
Wurden die in D2009 entfernt ? Oder immer noch drin.
Frage mich was das für einen sinn macht ohne Funktion.

k.A. Ist evtl. noch drin da die VCL.NET vermutlich relativ spät in der Entwicklung von D2009 gestorben ist.

Phoenix 19. Mär 2009 15:36

Re: unsafe code
 
Zitat:

Zitat von EWeiss
Und das selbe gilt dann für "unsafe Type" und "unsafe Typecast".
Wurden die in D2009 entfernt ? Oder immer noch drin.
Frage mich was das für einen sinn macht ohne Funktion.

Der Compiler kann das technisch gesehen noch, auch wenn die generierung von IL Code nicht mehr verwendet wird und nicht mehr gepflegt wird.

Nur: Das managed-Zeug aus dem Compiler rauswerfen sind Änderungen, die potentiell eine Menge Bugs einführen können. Also lieber den Code und die Warnungen drin lassen, als Fehler zu riskieren. Zumal die Warnungen ja ausschaltbar sind.

EWeiss 19. Mär 2009 15:45

Re: unsafe code
 
Danke ..
Hat mich mal interessiert da ich nicht genau wußte wofür diese Schalter waren
und warum man die Fehler (Warnungen) nicht beheben kann.

gruss Emil

Phoenix 19. Mär 2009 16:06

Re: unsafe code
 
Kann man prinzipiell schon. Man muss den Code halt so umbauen dass er keine Pointer verwendet...

Hat auf der einen Seite den Vorteil, dass man tatsächlich nicht mehr wild im Speicher rumpointert und irgendwelche Adressen auf irgendwelche Typen castet, die nicht zwingend zusammenpassen müssen - will heissen der Code wird wartbarer. Auf der anderen Seite ist das freilich schon ein Aufwand, der gemacht werden muss und den man dann auch noch durchtesten sollte. Ist immer ne Frage ob die Vorteile den Aufwand rechtfertigen.

Bernhard Geyer 19. Mär 2009 16:10

Re: unsafe code
 
Zitat:

Zitat von Phoenix
Kann man prinzipiell schon. Man muss den Code halt so umbauen dass er keine Pointer verwendet...

Ob das zu 100% möglich ist :gruebel:
Spätestens beim Aufruf von C-Like-DLL's wird man nicht mehr darum herum kommen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:12 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