Gestion des langues des ressources avec visual c++.net

cs_sanouk Messages postés 5 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 3 septembre 2004 - 13 janv. 2004 à 17:55
yosra_kobbi Messages postés 2 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 mars 2006 - 30 mars 2006 à 09:56
Salut,

Je découvre Visual c++.net. Avant je développais avec visual c++ 6.0 et je créais une dll de ressource par langue. Est-ce qu'avec visual c++.net la manip est plus simple?

Merci

Sanouk

2 réponses

cs_liv Messages postés 49 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 26 avril 2006
25 janv. 2005 à 16:17
Salut,

Dans ton projet principal tu crées une dll de ressource dans un projet vide. Tu dois avoir autant de dll que de langues.
Si tu as installé les MSDN va sur help://MS.VSCC/MS.MSDNVS.1036/vccore/html/_core_Create_a_Resource.2d.Only_DLL.htm

Ensuite tu copies le fichier .rc de ton programme principal dans celui de ton projet dll.
Tu traduis le fichier .rc de la dll dans la langue que tu veux.

Dans ton code au niveau de l'initialisation de ton programme (InitInstance() par exemple) tu copies le code suivant.
//Chargement de la Dll de langue
HINSTANCE dll;

if(m_Lang == "FR")
dll = LoadLibrary("ResDllFr.dll");

else if (m_Lang == "EN")
dll = LoadLibrary("ResDllEn.dll");

if(dll)
AfxSetResourceHandle(dll);

Lors de la fermture de ton programme tu décharges ta dll avec le code suivant:

HMODULE hDLL = AfxGetResourceHandle();
if (hDLL != AfxGetInstanceHandle())
{
AfxSetResourceHandle(AfxGetInstanceHandle());
FreeLibrary(hDLL);
}


La dll te sera utile pour traduire toutes tes ressources. Par contre si tu as du texte dans ton application (MessageBox, Champ texte dynamique...) indépendant de tes ressources tu devras mettre en place un objet langue à part ne servant qu'à stocker des variables contenant le texte.

Le choix de la langue lui peut se faire via une clé contenue dans un fichier .ini. En fonction de cette clé (FR, EN...), au démarrage de ton application (voir code ci-dessus) tu charges la dll adéquate et tu instancies tes variables texte de ton objet langue.

Voilà....si tu as des question n'ésite pas.

PS: il est toujours aussi pénible l'éditeur de texte du site ????

Liv
0
yosra_kobbi Messages postés 2 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 mars 2006
30 mars 2006 à 09:56
creation d'une dll à partir de c++
0
Rejoignez-nous