Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Falsch/Inkonsistent definierte Win32Api Funktionen in Winapi.Windows (https://www.delphipraxis.net/186207-falsch-inkonsistent-definierte-win32api-funktionen-winapi-windows.html)

SMO 13. Aug 2015 14:18

AW: Falsch/Inkonsistent definierte Win32Api Funktionen in Winapi.Windows
 
Zitat:

Zitat von mensch72 (Beitrag 1312045)
"var x: TIrgendeinTyp" nervt nicht nur, es verhindert auch das man da gezielt mal "nil" übergeben kann...

-> NIL/NULL als Parameter ist bei vielen WinApi Funktionen für Pointer erlaubt und hat da funktionsabhängig auch durchaus sinnvolle Bedeutungen und Sonderfunktionsfälle, welche einem per "var" in Delphi versperrt werden.

Verhindert und versperrt wird da gar nichts. Wo ein Wille ist, ist auch ein Weg:

Delphi-Quellcode:
GetDiskFreeSpaceEx('C:\', PLargeInteger(nil)^, PLargeInteger(nil)^, nil);

Sir Rufo 13. Aug 2015 14:50

AW: Falsch/Inkonsistent definierte Win32Api Funktionen in Winapi.Windows
 
Zitat:

Zitat von SMO (Beitrag 1312075)
Delphi-Quellcode:
GetDiskFreeSpaceEx('C:\', PLargeInteger(nil)^, PLargeInteger(nil)^, nil);

3 Parameter vom Type
Delphi-Quellcode:
PLargeInteger
wo man auf unterschiedliche Arten den Wert
Delphi-Quellcode:
nil
übergeben muss - obwohl die laut Api komplett gleich deklariert sind.

Kleines Schmankerl (was aber nicht so ganz tragisch ist):
In der Api ist das statt einem PLARGE_INTEGER ein PULARGE_INTEGER. Gut dass es sich hier nur um das Vorzeichen handelt.

p80286 13. Aug 2015 15:29

AW: Falsch/Inkonsistent definierte Win32Api Funktionen in Winapi.Windows
 
Large_Integer ist zwar ganz schön viel, aber ULarge_Ineger ist wohl ein wenig mehr. Und irgendwann gibt es wieder Jemanden, der weint, meine Festplatte ist kaputt, da kommen nur noch negative Werte.

Gruß
K-H


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

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