Computerhilfen.de Logo
Forum
Tipps
News

Sprachauswahlproblem

Hallo,

ich habe folgendes MS VC++ 6.0 Problem: Eine Dialogresource verwendet ein CEdit Feld, das in der Dialogklasse als integer Wert mit MinMax Auswertung bearbeitet wird. Das Ganze wurde mit dem Classwizzard von Visual Studio 6.0  eingestellt. Die Sprache des Programmes soll Englisch sein (vgl. UpdateData()). Was passiert ist, das immer schön eine deutsche Fehlermeldung erscheint, wenn statt einer Zahl ein Buchstabe eingegeben wird. "Geben Sie bitte eine ganze Zahl ein." Mit ein bischen debugging Aufwand kommt man dahinter, daß dieses ein AfxMessageBox(61712) Aufruf ist. 61712 ist eine Stringresource in einer DLL. Weiß jemand, welche DLL das ist und wie ich beinflussen kann, welche Sprachdll genommen wird?
Eine Suche nach dem Text in allen DLLs hat nicht funktioniert, da die Unicode Suche aus nicht näher genannten Gründen fehlschlägt.

Simone


Antworten zu Sprachauswahlproblem:

muh

Wir danken dem Author der ersten Anwort für eine Demonstration seiner überagenden Inteligenz.

S.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

ja... sehr kreative Antwort... aber S.pinner gibts halt überall, einfach ignorieren ;)

Mmh, zu Deinem Problem könnte ich mir vorstellen, dass die Fehlermeldungen in irgendeiner DLL des Betriebssystems verwaltet werden.!? ??? Somit sollten die in ner englischen Win-Variante auf englisch kommen... aber wenn Du sicher gehen willst, dann fang die Fehler doch selber ab, und schreib ne Message raus.

Mario 8)

Mario,

im Prinzip hast Du recht, aber damit würde ich mich auf eine Sprache festlegen, was ich aber nicht will. Die Messageboxen, die MFC erzeugt, sollten immer in der Sprache sein, die der Anwender auf seinem Windows hat. Leider funktioniert das nicht, so daß ich einen tollen Mix aus Japanisch und Deutsch habe (nein, ich kann kein Japanisch). Leider bezieht sich das nicht nur auf Messageboxen, sondern auch auf einige Fenstertitel, die von MFC erzeugt werden. Auch nur unter der Bedingung, das in einem ursprünglich "fremdsprachlichen" Program nachdem meine DLL, die ohne MFC gemacht ist, eingebunden wurde.
Die Texte der Messagebox liegen in der MFC42loc.dll und MFC42deu.dll.

S.

Ne Möglichkeit wäre noch die Strings (Fehlermeldungen,Titel, Captions etc.) in einer Datei(ini zb) abzulegen und bei Bedarf je nach Sprach-Einstellung im Programm, dann auszulesen.

Button-Caption = GetPrivateProfileString(gewählte_sprache,1,..., )

Ini:

[english]
1="Caption english"
2=..

[deutsch]
1="Caption deutsch"
2=..

Gruß

« Letzte Änderung: 17.12.03, 17:34:02 von Nighty »

Nighty,

das ist richtig. Da ich aber auch fertige DLLs in verschiedene Länder, deren Sprache ich einfach nicht beherrsche (beispielsweise Japanisch, Koreanisch, Russisch etc), ausliefere, habe ich wohl schlechte Karten, wenn ich eigene Fehlermeldungstexte verwende, zumal die richtigen Texte mit dem richtigen Zeichensatz bereits in der MFC42LOC.DLL stehen.
Ich vermute, daß es keine einfache Lösung für dieses Problem gibt. Vielen Dank and alle, die gepostet haben (bis auf den Intelligenzbolzen mit seinem "muh".)

S.

Für alle, die es interessiert: Das Präprozessorsetting "_AFXDLL" muß aus den Projectsettings (Tab "Resources") entfernt werden, dann wird die richtige lokale Sprache genommen.

S.

Jo kann man sicher mal brauchen...

Aber was machste mit dem Programm selber Tooltips, Form-Captions usw , is das dann alles in English gehalten?
Nur mal so so aus Interesse..

Gruß


« vb.net-programmierungjava-Programmierung »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!