AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) C# Fehlermeldung auf englisch erhalten?
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlermeldung auf englisch erhalten?

Ein Thema von Phoenix · begonnen am 12. Jan 2009 · letzter Beitrag vom 16. Jan 2009
Antwort Antwort
Seite 1 von 2  1 2      
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
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#2

Re: Fehlermeldung auf englisch erhalten?

  Alt 12. Jan 2009, 16:15
Zitat von Phoenix:
Und wenn ich FormatMessage mit der LangID für Englisch aufrufe, bekomme ich gar nichts zurück.
Laut Beschreibung müsste dann aber der Fehler ERROR_RESOURCE_LANG_NOT_FOUND auftreten.

Vielleicht musst du das Multi-Language Pack installieren (firmiert auch unter MUI = Multi-Language User Interface).
Uwe Raabe
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

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

Re: Fehlermeldung auf englisch erhalten?

  Alt 13. Jan 2009, 09:47
Okay.. Danke. Dann lad ich mal das MUI Testweise für meinen XP-Rechner runter und probier das damit.
Wenn das tut werde ich mir mal testweise ne Server-VM hernehmen und dort auch mit MUI probieren... Ich melde mich.

Edit Nachtrag: Ich finde kein MUI, das aus meinem deutschen XP ein englisches macht...
Das ist jetzt natürlich etwas ungeschickt. Müsste erstmal wild umherinstallieren.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

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

Re: Fehlermeldung auf englisch erhalten?

  Alt 14. Jan 2009, 16:08
Okay,

ich habe jetzt zum Testen einen englischen Windows Server 2003 installiert, und dort das deutsche MUI drauf gepackt.

Folge: Wenn ich die deutsche Meldung nun abrufe kommt der Fehler 1815 (ERROR_RESOURCE_LANG_NOT_FOUND). Und das, obwohl das MUI installiert ist.

Was muss ich nun machen, um die Meldung lokalisiert zu erhalten?
Ich will keine eigenen Resource-Tabellen mit zig Einträgen in meiner Anwendung pflegen, nur um die möglicherweise auftretenden Fehler abzudecken.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

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

Re: Fehlermeldung auf englisch erhalten?

  Alt 16. Jan 2009, 10:01
*push*
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

Re: Fehlermeldung auf englisch erhalten?

  Alt 16. Jan 2009, 12:31
Hilft dir das vll. weiter? http://blogs.msdn.com/shawnfa/archiv...10/227995.aspx

Zitat:
you've also probably been through the pain of converting the error code into a usable error message via the FormatMessage API
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

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

Re: Fehlermeldung auf englisch erhalten?

  Alt 16. Jan 2009, 12:58
Nein. Ich hab ja mit FormatMessage überhaupt erst angefangen, weil mir die (bereits gemarshalte) Exception den Fehlertext ja nur in der Betriebssystemsprache liefert.

Wenn Du mir jetzt sagst, wie ich diese Message in Englisch bekomme wenn ich einen deutschen Windows Server als OS hab, dann bist Du gut, weil DAS brauche ich zwangsläufig.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#8

Re: Fehlermeldung auf englisch erhalten?

  Alt 16. Jan 2009, 13:42
Vll. hilft das da: http://www.tech-archive.net/Archive/.../msg00350.html
(Muss aber jetzt los)
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

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

Re: Fehlermeldung auf englisch erhalten?

  Alt 16. Jan 2009, 14:01
Soweit war ich auch schon (siehe mein Post oben über den getMUIten Server).
Aber wenn ich jetzt ein englisches System mit deutschem MUI hab, bekomme ich nur die Englischen, nicht jedoch die deutschen Meldungen. Und die brauche ich ggf. auch.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#10

Re: Fehlermeldung auf englisch erhalten?

  Alt 16. Jan 2009, 15:06
Zitat von Phoenix:
Aber wenn ich jetzt ein englisches System mit deutschem MUI hab, bekomme ich nur die Englischen, nicht jedoch die deutschen Meldungen. Und die brauche ich ggf. auch.
Und wenn du mit SetThreadLocale() die Sprache veränderst?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz