Autor Beitrag
Toni57
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Sa 30.07.05 07:30 
Liebe Delphi Forum Leser,

das Delphi Forum hat mir schon oft geholfen und daher möchte ich auch zur Aufkärung einer Frage beitragen, die mich selbst betroffen hat. Ich entwickel gerade ein Projekt für eine Anlagensteuerung und die enthält auch den Standard RichEditor mit entsprechenden Druckerkomponenten zum Ausdrucken der Daten. Erst später habe ich im Projekt das Drucken auf eine PDF-Komponente umgestellt. Die Druckerkomponenten selbst habe ich aber im Projekt gelassen. Wer weiss, vieleicht muß ich ja doch noch drucken.

Während der Programmierung und kleinen Test auf meiner Entwicklungsumgebung lief alles sehr gut. Bevor ich jedoch die Software ausliefere, teste ich auf einer virtuellen Maschine, die nur mit den benötigten Programmen (z.B Acrobat Reader) und den aktuellen Service Packs eingerichtet ist.

Nach dem Programmstart erhielt ich eine Fehlermeldung (von Windows), die in der Ereignisanzeige wie folgt zu verstehen war:
"Ausnahmefehler C0000025 (RtlTraceDatabaseEnumerate) an Adresse xxxxx "

Mit der Fehlermeldung konnte ich nichts anfangen und auch die Antworten im Internet waren äußerst mager.

Ich begann mit der Fehlersuche erstmal im Quellcode, konnte jedoch keine Speicherschwierigkeiten finden. Das seltsame: auf einem anderen Rechner lief das Programm. Wo war der Unterschied ? Ich fing an im Quellcode nacheinander verschieden Komponenten zu entfernen. Als ich die Druckerkomponenten des Richeditors entfernt hatte, startete das Programm mit dem Hinweis, daß ich eine Seite einricheten soll. Weil ich zu faul war, brach ich an dieser Stelle an und richtete einen Standarddrucker auf dem Betriebssystem ein, startet den Rechner neu und auf einmal startete auch mein Programm ohne irgenwelche Fehlermeldungen.

Meine Vermutung ist, daß Borland auf einen Windowsinternen Speicherbereich/Stack oder Funktion verweist, mit der Mircosoft ohne eingerichteten Drucker nichts anfangen kann. Dieses Problem trat bei mir bei Windows 2000 und XP auf. Schade nur, daß wie so oft die Fehlermeldung hierzu absolut unqualifiziert ist. RTLTraceDatabaseEnumerate hört sich ja auf jeden Fall wie 'ne Drucker Meldung an. Ich hoffe, daß ich in meinen eigenen Programmen besser Anwenderunterstützung liefere.

Als dann bis zum nächsten mal

Gruß

Detlef Thee
chip-power
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Do 06.10.05 10:46 
Kann dieses Beobachtung nur bestätigen.
Hatte das selbige Problem. Nach der installation eines beliebigen Druckers, war das Problem gelöst.
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: Do 06.10.05 11:33 
Ich würd das gern mal bei mir auch gegentesten..
Was habt ihr denn für Delphi-Versionen? Und welche Komponente löst den Fehler genau aus? ein RichEdit?


MrSaint

_________________
"people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Do 06.10.05 20:17 
user profile iconToni57 hat folgendes geschrieben:
RTLTraceDatabaseEnumerate hört sich ja auf jeden Fall wie 'ne Drucker Meldung an.

Naja,für mich hört sich RTLTraceDatabaseEnumerate eher nach einem Fehler in der RTL von Windows bei der Behandlung von Stack Trces oder anderen Nachverfolgungs-Routinen an, die durch irgendwas gestört werden.

Aber anhand der Problembeschreibung würd ich auch eher auf einen Fehler in
1. Windows
bzw.
2. der VCL
tippen ([ironie]Die Reihenfolge soll keine Wertung der Wahrscheinlichkeit darstellen[/ironie]).

Hast Du mal versucht, das Programm in der VM mit Delphi zu debuggen? Wenn ja, und wenn mit DebugDCUs: Welchen Stack-Trace meldete Delphi? (Alternativ kann auch die JCDebug oder ODbgMapfile\ODbgInterface für den Stacktrace verwendet werden; die sind genauer als Delphi).

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.