Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#1

Fehlermeldung auf englisch erhalten?

  Alt 12. Jan 2009, 15:43
Hi,

ich hab hier ein massives Problem.
Ich greife aus .NET heraus auf einige Netzwerkfunktionen der Windows API zu. Das ist soweit auch kein Problem. Aber ab und zu tritt eine Fehlersituation auf. Die Exception die ich in .NET erhalte ist vom Typ COMException und die Message sieht z.B. so aus:
Zitat von COMException:
Das angegebene Netzwerkkennwort ist falsch. (Exception from HRESULT: 0x80070056)
Das ganze hat hier - wie man sieht - zwei Probleme:
1.) ist die Meldung auf Deutsch. Das ganze läuft auf einem deutschen Server, aber für internationale Kunden. Das heisst, die Meldung muss mindestens auf englisch sein.
2.) Steht der HRESULT hinten dran. Den will ich natürlich nicht draussen anzeigen.

Ich bekomme bei der COMException genau diesen HRESULT-Code mit. Wenn ich den an die Windows-API Funktion FormatMessage übergebe, dann bekomme ich die Meldung ohne (Exception from...) zurück. Okay, Problem 2 gelöst.
Leider ist die Nachricht immer noch auf deutsch. Und wenn ich FormatMessage mit der LangID für Englisch aufrufe, bekomme ich gar nichts zurück.

Wie bekomme ich also für einen Fehlercode zwingend den Englischen Fehlertext, egal welche Sprachversion vom Betriebssystem installiert ist?
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat