Diskussion:GetLastError

Aus API-Wiki
Wechseln zu: Navigation, Suche

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)

Weil das der erste Artikel war, den mir Google zum Thema vorgeschlagen hatte. Und weil es dort schon sehr deutlich steht, hatte ich mir nicht die Mühe gemacht, noch weiter zu graben. - Helge Rex 15:33, 10. Mär. 2007 (CET)

Weiterleitung

Warum wird man, wenn man auf Err.LastDllError geht, denn auf GetLastError verwiesen? Das stiftet Verwirrung, wenn dort plötzlich steht, man solle diese API-Funktion nicht benutzen... Schließlich schaut man nicht auf den Titel der Seite, wenn man davon ausgeht, bei Err.LastDllError zu sein... Henrik Ilgen 10:10, 17. Mai 2008 (CEST)