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.
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;
Or je dois compiler avec /MT car il ne me faut pas distribuer de DLL.

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é :
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);
Une idée ?