Einzelnen Beitrag anzeigen

ECHTERNMM

Registriert seit: 29. Sep 2004
Ort: Jena
5 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Fehler bei extended-Variablen

  Alt 1. Okt 2004, 16:40
Hi,

zunächst Danke für die Hinweise. Aber das Problem hat nichts mit den üblichen Flouting-point Fehlern zu tun.
Auch mit der Plattform hat es nichts zu tun: ich sagt ja bereits, daß sich ein und dieselbe EXE-Datei auf verschiedenen Win2000Pro SP4 Rechner unterschiedlich verhält-die "Plattform" ist j a dann wohl dieselbe...

Ich habe einen reproduzierbaren Anhaltspunkt für das oben beschriebene Verhalten ausfindig gemacht:
Immer wenn das Programm i64ext.exe die Datei msvcrt.dll läd, kommte zu der fehlerhaften Berechnung.
Das Progrqamm i63ext.exe läd die DLL natürlich nicht explizit, aber anscheinend gibt es hook-DLL's, die nach einem mir nicht bekannten Verfahren hinzugeladen werden. Diese laden dann msvcrt.dll nach.
Beispiel: winvnc
oder CTHELPER (Ein Programm von Creative Technology Ltd, das irgendwie zu den Soundblaster-Treibern gehört).

Folgendes ist reproduzierbar:
Auf Rechner A läuft der VNC-Server, auf Rechner B der VNC-viewer.
Sind die Rechner nicht verbunden, funktioniert i63ext.exe auf Rechner A. Verbindet man sich von B aus mit A, dann zeigt das Programm diesen Unsinn 123451234512345114 statt 123451234512345123) an.
Kappt man die Verbindung und startet das Programm auf A neu, so ist wieder alles OK.
Ich habe mit dem schönen Programm Process Explorer 8.2 von sysinternals jeweils nachgesehen, welche DLL's das Programm geladen hatte. Immer wenn msvcrt.dll geladen ist, funktioniert VAL->STR nur mit 16-stelliger Genauigkeit, ist es nicht geladen, ist alles OK.

Ahso: Ab und B sind beides Win2000Pro SP4 Rechner. Die Version von MSVCRT.DLL ist (auf beiden Rechnern) 6.01.9844.0000.


Fällt jemandem etwas dazu ein??

Gruß
nmm
  Mit Zitat antworten Zitat