Frage

Ich untersuche derzeit ein Problem mit einer 3rd-Party-Komponente (DevExpress) in meiner Anwendung. Mein Problem ist, ganz ähnlich wie dieses DevExpress KB-Artikel . Ich bekomme die gleiche Ausnahme mit mehr weniger demselben Stacktrace. So habe ich .NET Reflector, um herauszufinden, was in diesem Szenario null sein kann, und das einzige Objekt, das ein candiate ist null sein soll Grafiken. Dies wird mit Graphics.FromHwnd (IntPtr.Zero) erstellt. Weil ich nicht über ein breites Wissen über GDI hat, würde Ich mag wissen, ob jemand mir mögliche Szenarien sagen kann, wenn diese zurückgeben null ...

Ich habe versucht, es in einem Szenario zu reproduzieren, wo Fenster aus GDI Handelte ist, aber dann „out of handles“ Ich erhalte eine - Ausnahme mindestens einmal, was nicht der Fall in der Frage ist, dass ich zu untersuchen

tia, Martin

War es hilfreich?

Lösung

Von dem, was ich mich erinnere, ein HWND von 0 (effektiv IntPtr.Zero) ist ein Handle auf die aktuellen Desktop des Benutzers Sitzung. Es kann verwendet werden, um verschiedene Metriken des Systems zu messen und es sollte ein gültiger Wert für Graphics.FromHwnd sein.

Allerdings GDI + ist so voll von Fehlern und die .NET-Integration mit ihm ist so instabil, es sehr gut möglich ist, es ist nichts falsch mit Ihrem Code oder DevExpress andere als GDI + nur verwendet.

Andere Tipps

Zu allererst Sie verwenden die IntPtr Struktur und auf Null initialisiert. Dann sind vorbei Sie diesen Griff in die Graphics-Klasse. Es sei denn, Sie ein Fenster mit einem handle == 0 haben, ein null Wert ist genau das, was ich erwarten würde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top