Wie der Name der Funktion sagt, gibt sie den letzten Fehler zurück. Wenn die letzte Funktion keinen Fehlercode setzt wird der Fehlercode von einer vorherigen zurückgegeben.
Der Witz ist ja: Es gibt keine vorherige Funktion, wenn ich ReleaseDC auskommentiere, denn dann wird einfach nur zweimal hintereinander GetLastError aufgerufen und dessen Ergebnis mit MessageBox ausgegeben, aber mit jeweils unterschiedlichen Ergebnissen. OK, jetzt könnte man argumentieren, dass MessageBox natürlich ebenfalls eine "vorherige Funktion" ist, aber wenn diese erfolgreich auf dem Bildschirm auftaucht, erklärt das einen "Zugriff verweigert" nicht.
Irgendwie lag das aber wohl an meinem Programmiersystem, sehr wahrscheinlich durch die Rumprobiererei mit ReleaseDC und dessen Parametern, denn nach einem Neustart des Systems bekomme ich zuverlässig die 8 als GetLastError-Rückgabe. Verstehen tue ich die zwar auch nicht, aber vermutlich liegt das an der
Unit pngimage; solange alles funktioniert, ignoriere ich das mal...
MfG Dalai