Salut à tous,
J'ai plutôt du mal à trouver des infos sur les string table donc un petit post
Mon but est de réaliser une application multilingue en c++.
J'aurais voulu passer par les .resx mais les déclarations suivante m'oblige à compiler avec /clr qui malheureusement n'est pas compatible avec /MT.
Or je dois compiler avec /MT car il ne me faut pas distribuer de DLL.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 using namespace System; using namespace System::Globalization; using namespace System::Security::Permissions; using namespace System::Threading;
D'où la solution des String Table.
Maintenant problème (naturellement :p)... Ca ne m'arrange pas que la langue soit défini automatiquement en fonction de la langue de l'exe.
Y aurait-il un moyen de cibler sur la string table de mon choix ? (comme changer dynamiquement la langue ou autre ...)
Merci par avance
Cordialement
EDIT: j'ai trouvé une alternative avec SetThreadLocale mais la msdn dit de ne plus l'utiliser et de prendre FindResourceEx à la place.
Mais pas moyen de faire marcher celle-ci..
Voila ce que j'ai essayé :
Une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 HMODULE hModule = NULL; WORD LangID = MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT); HRSRC hRC = FindResourceEx(hModule, RT_STRING, MAKEINTRESOURCE(101), LangID); HGLOBAL hgl = LoadResource(hModule, hRC); LPWSTR res_str = (LPWSTR)LockResource(hgl);
Partager