IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

Utilisation de dlls satellites dans VC++ 6.0


Sujet :

Visual C++

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 63
    Par défaut Dlls Satellites pour langue ; Actualisation de l'interface
    Bonjour tout le monde.

    Dans l'optique de traduire une application en plusieurs langues, je voulais savoir si quelqu'un savait comment utiliser des dlls satellites dans un projet Visual C++.

    Je m'explique : je dispose actuellement du projet avec les ressources toutes en anglais. A l'aide d'un logiciel nommé "appTranslator", je les ai traduites en français et généré une "dll satellite" qui contient donc toutes les ressources traduites. Je voudrais savoir comment insérer cette dll dans mon projet afin de pouvoir ensuite accéder aux données.

    Si quelqu'un m'a compris...

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    ce post de la faq devrait te renseigner :
    http://c.developpez.com/faq/vc/?page...gMultiLanguage

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 63
    Par défaut
    Comment j'ai fait pour passer à côté

    Je vais étudier ça et je reviens si j'ai des questions

    En tout cas merci bcp

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 63
    Par défaut
    Bon ben comme promis je reviens

    J'ai une question, les textes des ressources utilisées par l'application sont bien contenues dans la dll ou dans le fichier .res ? Car dans le répertoire de "sortie", j'ai deux fichiers, la dll et le fichier .res, et je voulais savoir si pour l'exécution de mon appli j'avais besoin que de la dll ou des 2 ?

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    dans la dll (heureusement )

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 63
    Par défaut
    J'ai une dernière question : la dll se charge bien mais je voudrais savoir s'il existe un moyen simple de réactualiser tout les textes de l'application (comme le menu par exemple qui ne sont pas mis à jour au moment du changement de langues).

    Merci

  7. #7
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 63
    Par défaut
    Personne n'a d'idées ?

    Ya pas moyen de réactualiser simplement l'interface ? J'ai trouvé une pseudo solution qui consiste à supprimer le menu pour le recréer mais ça ne marche pas du tout, j'ai plein d'exceptions et je comprend pas grand chose.

    Quelqu'un a déjà fait ça ?

  8. #8
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    si tu as la méthode décrite dans la faq ,je ne vois pas pourquoi tu as besoin de recharger le menu.
    la selection de la dll de ressource doit se faire en debut de programme .

  9. #9
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 63
    Par défaut
    Tout simplement parce que quand l'utilisateur change la langue du programme, les menus ne sont pas mis à jour, ils restent dans l'ancienne langue. En revanche les boites de dialogues qui sont créées après sont elles dans la nouvelle langue.

    S'il ferme l'application et qu'il la réouvre, elle sera bien dans la langue qu'il a sélectionné, ça marche sans problème.

    Je voulais juste trouver un moyen pour qu'il ne soit pas obligé de redémarrer l'application, qu'il puisse changer la langue en direct

  10. #10
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 63
    Par défaut
    Sinon la je suis en train d'essayer une autre méthode.

    Je voudrais fermer et relancer automatiquement l'appli afin d'appliquer les changements. Pour cela j'utilise les commandes suivantes :

    pour fermer l'appli :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Result = AfxGetMainWnd()->PostMessage(WM_SYSCOMMAND,SC_CLOSE,0);
    pour ouvrir une nouvelle instance :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    wchar_t nom[MAX_PATH] ;
    wchar_t chemin[MAX_PATH] ;
    wchar_t* nom_complet ;
     
    GetNom(nom,MAX_PATH) ;
    GetChemin(chemin, MAX_PATH) ;
    nom_complet = wcscat(chemin,L"\\") ;
    nom_complet = wcscat(nom_complet,nom) ;
     
    if (Result) ShellExecute ( NULL , L"open" , nom_complet , NULL, NULL , SW_HIDE );
    Cela marche très bien quand aucun document n'est ouvert. En revanche, quand il y en a au moins un d'ouvert, ça ne marche pas car le temps que je réponde aux questions pour savoir si je veux sauvegarder, etc... l'application est déjà relancée.

    Il faudrait que le ShellExecute attende que l'application soit fermée, quelqu'un sait comment forcé ceci ?

  11. #11
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 63
    Par défaut
    Je m'en suis sorti en surchargeant la méthode

    BOOL MyApp::SaveAllModified()

    Si ça peut aider quelqu'un

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment utiliser des dll C++ dans un projet C# ?
    Par kreitech dans le forum C#
    Réponses: 5
    Dernier message: 20/02/2007, 16h49
  2. utiliser une DLL C++ dans un Exe Delphi
    Par rudi0 dans le forum Delphi
    Réponses: 1
    Dernier message: 13/12/2006, 22h49
  3. [COM] Comment utiliser une dll DotNet dans un projet win32 ?
    Par Marmottoc dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 05/05/2006, 15h58
  4. [Langage]Comment utiliser une dll .NET dans VB6?
    Par BouB dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 13/04/2006, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo