AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Falscher Product Type in OSVersionInfoEx
Thema durchsuchen
Ansicht
Themen-Optionen

Falscher Product Type in OSVersionInfoEx

Ein Thema von Nersgatt · begonnen am 7. Dez 2012 · letzter Beitrag vom 24. Dez 2012
 
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#10

AW: Falscher Product Type in OSVersionInfoEx

  Alt 11. Dez 2012, 15:25
Ich hab's natürlich aufgrund deines Hinweises der Vollständigkeit halber VORHER noch mal ausprobiert. Weil man sich im Lauf der Jahre daran gewöhnt hat, dass ein BOOL mit einem Boolean "kompatibel" ist. "0000" ist ja auch das selbe wie "00" oder "0"...es wird einfach nicht mehr wie "true", egal wieviele Nullen man ran hängt
Ist das so?

$100 ist als Byte in der Tat identisch mit $0, weil alles oberhalb von 8bit abgeschnitten wird beim Typecast. Als BOOL (also 32bit-Wert) hingegen nicht. Daß eine 32bittige 0 einer 8bittigen 0 entspricht ist mir auch klar. Das war aber hier nicht die Frage, bzw. das Problem. Ich bin ja hier nicht so modern ausgestattet. Aber Delphi 2009 habe ich auch. Also hab ich es mal getestet. Entwarnung. Delphi hat natürlich mal wieder den Weg des geringsten Widerstands gewählt und offenbar Compiler-Magic dafür engagiert damit Delphianer solche Dummheiten nicht machen. Was vermutlich dann bei allen die korrektes Verhalten erwarten - mal wieder - zu Überraschungen führt. Aber egal, bin ja kaum noch auf Delphi unterwegs. Habe es übrigens hiermit getestet:

Delphi-Quellcode:
program booltest;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Windows;

function DeinApiAufruf(): LongBool;
begin
  Result := LongBool($100);
end;

function DeinDelphiWrapper(): Boolean;
begin
  Result := DeinApiAufruf();
end;

begin
  Write('Sagt: ');
  if DeinDelphiWrapper() then
    Writeln('True')
  else
    Writeln('False');
end.
Übrigens bist du auf das Lizenzproblem noch nichtmal eingegangen. Danke (oder wegen) Urheberrecht kann sich eben nicht mal jeder deinen Code krallen, es sei denn du machst ihn unter einer entsprechenden Lizenz verfügbar.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
 


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 18:39 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