Diskussion:GetLastError

Aus API-Wiki
Zur Navigation springenZur Suche springen

Bitte mach deutlich, daß diese Funktion nicht direkt aufgerufen, sonderm immer LastDLLError verwendet werden soll:

Um dieser unter Visual Basic oft fälschlich verwendeten Vorgehensweise gleich einen Riegel vorzuschieben: GetLastError liefert Ihnen unter Visual Basic vielleicht, vielleicht aber auch nicht die korrekte Fehlernummer zurück - diese Funktion ist für Visual Basic Programmierer absolut tabu!
Der Grund für dieses Tabu: Die Visual Basic Laufzeitumgebung macht selbst massiven Gebrauch vom Windows API, GetLastError jedoch liefert immer nur den Fehlerstatus des letzten Aufrufs einer API Funktion zurück. Ob GetLastError Ihnen als Visual Basic Programmierer die korrekte Fehlernummer liefert oder nicht, ist also davon abhängig, ob der letzte Aufruf einer API Funktion aus Ihrer Anwendung selbst oder aus der Visual Basic Laufzeitumgebung heraus auftrat - ein Kriterium, auf das Sie keinerlei Einfluss haben. Aus diesem Grund haben die Entwickler von Visual Basic die Aufgabe von GetLastError in Visual Basic selbst implementiert: Die Eigenschaft LastDllError des Err-Objekts liefert Ihnen den Fehlerstatus zurück, der vom letzten API Aufruf stammt, den Sie selbst in Ihrem Code eingesetzt haben.

Quelle: http://www.microsoft.com/germany/msdn/library/visualtools/vb6/APIFehlermeldungenImKlartext.mspx

- Helge Rex 11:48, 5. Mär. 2007 (CET)


Habe den Artikel erweitert Nils Thomsen 15:54, 8. Mär. 2007 (CET)

MSDN [GER/US]

zu Bemeckern: Wieso verweist du auf den deutschen MSDN-Artikel, obwohl dieser zwar für VB richtig ist, aber dennoch sich mit der eigentlichen Verwendung von GetLastError überhaupt nicht befasst? Ich denke, hier sollte auf jeden Fall der Verweis zur MSDN bleiben - auch wenn die Funktion in VB nicht benutzt werden SOLLTE. - Nils Thomsen 14:15, 10. Mär. 2007 (CET)