UP-Aufruffehler nach Druck auf HP-Druckertreiber

Anando Eger a.eger at aneg-dv.de
Di Sep 7 10:22:48 CEST 2004


Hallo Herr Eversberg,

Sie schrieben u.a.:
AE:
> > Den Effekt, dass a99 nach dem Drucken "spinnt", beobachte ich ja schon
> > länger, und zwar in mehreren, völlig verschiedenen Umgebungen.
> > Deshalb war ich auch froh, dass dieses Verhalten endlich einmal 
> > reproduzierbar darstellen konnte. Und HP-Drucker werden ja recht
> > häufig eingesetzt. Können Sie das beschriebene denn nachvollziehen?
> > 
BE:
> Bisher nicht. 

mmm. Ich habe Druckertreiber zusammengesucht, die hier bei mir auf
jedem der angegebenen PC's zum beschriebenen Fehler führten und hoffte,
dass sich dadurch die Absturzstelle auch in Ihrer Entwicklungsumgebung 
einkreisen lässt.

> Der Druck des Anzeigefeldes und der Druckertreiber, das sind 
> Windows-typische Standardsachen, die mit den Anzeigeparametern und deren 
> Speicherbereich nichts zu tun haben.

Ich würde auf gegenseitiges Überschreiben von Variablen infolge eines
Pointerfehlers und/oder eines Bereichsüberlaufs tippen. 

> Deshalb sehe ich noch gar keinen Ansatzpunkt zum Untersuchen des Phaenomens.

Ich hatte in einem eigenen Programm mal einen ähnlichen Fehler und habe ihn
dadurch gefunden, dass ich einfach alle Variablenzuweisungen hinsichtlich
Initialisierung und Speicherbereich geprüft habe. Das hat eine Weile
gedauert. Zum Schluss wusste ich, dass ich den Fehler selbst begangen hatte.
Sie kennen das ja sicher: keine strcpy & memcpy-Funktionen verwenden,
alle casts prüfen, im Stack abgelegte Pointer untersuchen usw.

Hier könnte es doch sein, dass a99 in Folge eines Fehlers ein Stück Speicher 
benutzt, in dem eigentlich die Printparameter (CPrintInfo ?) liegen. Wenn die 
dann bei Nutzung einer Druck-Memberfunktion verändert werden, könnte ein Fehler
wie der beobachtete entstehen. 

Dafür spricht, dass es genügt, nur den Drucker auszuwählen und dann den
Druckdialog abzubrechen, um den beschriebenen Fehler zu provozieren.
Ist der HP-Druckertreiber Standardtreiber, genügt ein Öffnen und sofortiges 
Abbrechen des Printdialogs.

Wie gesagt - ich helfe gern bei der weiteren Suche ...
Welche Printfunktionen benutzen Sie?

Viele Grüße
Anando Eger





Mehr Informationen über die Mailingliste Allegro