2016-05-10 9 views
0

Laut MSDN gibt GetObject bei einem Fehler 0 zurück. Es wird nicht erläutert, wie Sie zusätzliche Informationen zum Fehler erhalten.Wie kann man herausfinden, warum GetObject fehlgeschlagen ist?

Ich habe versucht GetLastError, aber es sieht aus wie es nicht den vorherigen Fehler widerspiegelt und gibt 0 (d. H. ERROR_SUCCESS) statt.

Wie bekomme ich den Fehlergrund, wenn GetObject ausfällt?

+1

Nach der Dokumentation glaube ich nicht, es gibt einen detaillierten Grund. Es gibt nur 0 bei einem Fehler zurück. –

Antwort

2

Gemäß der Dokumentation GetObject wird nicht der letzte Fehlercode gesetzt. Dies ist auch nicht notwendig, da man leicht ableiten kann, welche Parameter falsch ist:

Wenn ein Aufruf an GetObject ausfällt NULL für lpvObject vorbei, Sie wissen, dass der Griff falsch ist (entweder ein Handle für ein Objekt, das nicht mehr existiert oder ist von einem nicht unterstützten Typ).

Wenn der vorherige Aufruf erfolgreich war und ein nachfolgender Aufruf mit demselben GDI-Objekthandle fehlschlägt, wissen Sie, dass Sie einen ungeeigneten Puffer übergeben (entweder zu klein oder nicht ordnungsgemäß an einer 4-Byte-Grenze ausgerichtet).

Verwandte Themen