AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein NaN unter Windows XP mit XE4 compiliert
Thema durchsuchen
Ansicht
Themen-Optionen

NaN unter Windows XP mit XE4 compiliert

Ein Thema von stalkingwolf · begonnen am 1. Dez 2016 · letzter Beitrag vom 1. Dez 2016
Antwort Antwort
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.233 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: NaN unter Windows XP mit XE4 compiliert

  Alt 1. Dez 2016, 10:41
Eigentlich verhält sich dein Programm unter XP jetzt korrekt.

NULL != 0

Hintergrund wird sein das ab Vista der Desktop von Windows in einem beschleunigten Modus (DirectDraw) läuft und hierfür die Exception-Mask der FPU standardmäßig anders eingestellt sind
das sollte NAN-Exception einfach als O-Werte zurückgeliefert werden.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: NaN unter Windows XP mit XE4 compiliert

  Alt 1. Dez 2016, 14:06
Hintergrund wird sein das ab Vista der Desktop von Windows in einem beschleunigten Modus (DirectDraw) läuft und hierfür die Exception-Mask der FPU standardmäßig anders eingestellt sind
das sollte NAN-Exception einfach als O-Werte zurückgeliefert werden.
Verstehe ich nicht. Der Desktop (explorer.exe) ist ein eigener Prozess, ich dachte der hätte seine FPU-Flags wie er mag? Außerdem stellt doch jede Delphi-Anwendung zu Beginn für ihren Prozess die Flags auf Standard. Da wir ja schon feststellen konnten das es generell auf XP anders ist glaube ich nicht mehr dass es zwingend mit der FPU-Maske zusammenhängt.

Können wir das irgendwie nachstellen? Welche Drittanbieter-Abhängigkeiten haben wir hier durch den Datenbank-Zugriff?
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
552 Beiträge
 
#3

AW: NaN unter Windows XP mit XE4 compiliert

  Alt 1. Dez 2016, 16:40
Wie oben geschrieben.
Der Zugriff auf die Datenbank war wohl gar nicht das Problem, sondern das die Variable nur deklariert, aber nicht initialisiert war.

Ich hatte den Quellcode etwas simplifiziert.
Es war eigentlich eine Schleife in der Stand noch
Code:
b := b + q.fieldbyname('b').asfloat;
Der Code ist alt und ich portiere momentan von Delphi6 auf XE4 die Programme. Da stolpere ich über Haufenweise solche Dinge.
Die Programm sind mehre Tausend Zeilen und davon fast 100 Programme. Jede Zeile im Detail kann ich nicht prüfen.
Vor allem wenn durch 3 proceduren eine Variable mit var weitergegeben wird
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:50 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