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