none
Le futur du lecteur de document Word RRS feed

  • Question

  • bonjour

    Je continue de migre mon application BCB. elle a une faiblesse sur la lecture de documents Word

    Je vais donc la migrer à partir de l'espace

    Microsoft.Office.Interop.Word Namespace

    il va falloir savoir comment l'utiliser


    Jean Noël Martin

    mercredi 11 juillet 2012 12:21

Réponses

  • Je n'ai pas trouvé la DLL correspondante je l'ai cherchée dans la distribution de Visual Studio

    J'ai téléchargé ce que vous m'avez mis dans le lien et je le cherche sur mon PC

    Je l'ai trouve je l'ai installé comme vous l'avez mentionné. L'installation a été bonne la deuxième fois.  L'interface a accepté le nom de la dll.


    Jean Noël Martin



    • Modifié JeanNoel53 mercredi 25 juillet 2012 17:37
    • Marqué comme réponse JeanNoel53 mercredi 25 juillet 2012 17:37
    mercredi 25 juillet 2012 17:03

Toutes les réponses

  • C'est quoi la question ?

    Attention au fait qu'il faut avoir Word d'installé sur la machine et que ces outils sont à proscrire des plateforme serveur.


    Paul Bacelar, Ex - MVP VC++

    mercredi 11 juillet 2012 12:47
    Modérateur
  • Word est installé

    Jean Noël Martin

    mercredi 11 juillet 2012 14:08
  • Il y a l'espace de nom et il y a aussi l'assembly contenu dans une Dll qui doit porter le même nom mais avec .dll à la fin (logique pour une Dll ;-), même si elle ne fait que contenir un assembly).

    Si vous voyez la différence entre #using dans les sources et l'"Add Reference" (cf. PIA) de l'IDE, c'est parfait. ;-)


    Paul Bacelar, Ex - MVP VC++

    mercredi 11 juillet 2012 16:10
    Modérateur
  • J'ai donc codé, pour avancer pas a pas la structure du code de l'interface Word, avec uniquement les appels des directive using: cela donne:

    namespace SpecificationLoader { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; using namespace Microsoft::Office::Interop::Word;

    }

    et la ligne using namespace Microsoft::Office::Interop:word; provoque les message d'erreur du compilateur ci dessous:

    WordManager.cpp(13): error C3083: 'Office' : le symbole situé à gauche de '::' doit être un type
    1>WordManager.cpp(13): error C3083: 'Interop' : le symbole situé à gauche de '::' doit être un type
    1>WordManager.cpp(13): error C2039: 'Word' : n'est pas membre de 'Microsoft'
    1>WordManager.cpp(13): error C2871: 'Word' : un espace de noms avec ce nom n'existe pas
    1>

    Jean Noël Martin

    mardi 24 juillet 2012 13:57
  • Le using C++/CLI c'est un peu comme le using du C++.

    Il simplifie l'écriture du code mais n'ajoute pas les références des librairies contenant les namspaces dans les options du linker.

    Donc, là, vous avez ces messages d'erreur car le compilateur C++/CLI (qui fait aussi le "link") ne voit aucun namespace "Microsoft" dans l'ensemble des assemblies référencés par le projet. Il cherche donc la classe Microsoft d'où le message 'Office' : le symbole situé à gauche de '::' doit être un type

    Il faut donc tout simplement ajouter une référence vers le PIO de Word (l'assembly installé avec Word) dans le projet.

    Après, il vous foutra la paix. ;-)


    Paul Bacelar, Ex - MVP VC++



    mercredi 25 juillet 2012 12:12
    Modérateur
  • Je comprends partiellement vos dire, mais je suis dans l'expectative pour comprendre comment initialiser VS vers le PIO de Word. je vais tâtonner un peu pour essayer de trouver.

    Jean Noël Martin

    mercredi 25 juillet 2012 14:46
  • Ce n'est pas VS qui doit référencer le PIA (désolé pour la type, la fatigue), mais votre projet.

    sélectionné votre projet dans l'explorateur de solution de VS -> click droit -> Propriétés -> Propriétés communes -> Structure et références -> le bouton "Ajouter une nouvelle référence" -> Onglet Parcourir -> sélectionnez sur votre HD l'assembly (un fichier .dll) PIA de Word.

    Le PIA devrait avoir un nom proche des namespaces des classes qu'il contient donc ~ : Microsoft.Office.Interop.Word.dll

    Si vous le trouvez pas :

    http://msdn.microsoft.com/fr-fr/library/kh3965hw(v=vs.80).aspx


    Paul Bacelar, Ex - MVP VC++

    mercredi 25 juillet 2012 15:23
    Modérateur
  • Je n'ai pas trouvé la DLL correspondante je l'ai cherchée dans la distribution de Visual Studio

    J'ai téléchargé ce que vous m'avez mis dans le lien et je le cherche sur mon PC

    Je l'ai trouve je l'ai installé comme vous l'avez mentionné. L'installation a été bonne la deuxième fois.  L'interface a accepté le nom de la dll.


    Jean Noël Martin



    • Modifié JeanNoel53 mercredi 25 juillet 2012 17:37
    • Marqué comme réponse JeanNoel53 mercredi 25 juillet 2012 17:37
    mercredi 25 juillet 2012 17:03