Partager via


Ajouter des références à un projet Visual C++ managé

Cet article fournit des informations sur l’ajout de références à un projet Visual C++ managé.

Version du produit d’origine : Visual C++
Numéro de base de connaissances d’origine : 310674

Résumé

Cet article décrit le processus d’ajout d’une référence à un autre assembly dans un projet Visual C++. Dans d’autres langages, tels que Visual C#, vous pouvez ajouter une référence via la boîte de dialogue Ajouter une référence . Cette boîte de dialogue n’est pas disponible pour les applications C++ gérées. Il existe plusieurs conseils qui facilitent l’utilisation de références dans une application C++ managée.

Références Microsoft .NET

Les références .NET pointent vers des assemblys partagés. Par exemple, l’assembly System.Windows.Forms.dll est un assembly standard pour accéder aux classes Windows Forms. Pour utiliser cet assembly dans une application C++ managée, vous devez simplement la référencer avec une #using directive de préprocesseur, comme illustré ici :

#using <System.Windows.Forms.dll>

Références COM

L’utilisation d’un objet COM (Component Object Model) dans une application C++ managée implique une décision de conception. Une option consiste à utiliser du code COM non managé à l’intérieur d’une classe managée. Par exemple, vous pouvez décider d’utiliser la solution traditionnelle #import . Cela peut être une bonne option pour les cas où il existe des problèmes à l’aide de COM Interop.

La deuxième option consiste à utiliser des assemblys d’interopérabilité qui encapsulent l’objet COM. Il s’agit de la seule méthode disponible pour d’autres langages comme C# et Visual Basic .NET. Pour créer un assembly d’interopérabilité pour un objet COM, utilisez l’outil TLBIMP.exe. Par exemple, procédez comme suit pour automatiser Internet Explorer à partir d’une application managée :

  1. Ouvrez une invite de commandes.

  2. Accédez au dossier Système Windows.

  3. Tapez la commande suivante :

    tlbimp shdocvw.dll /out:Interop.shdocvw.dll
    
  4. Déplacez Interop.shdocvw.dll vers votre dossier de projet.

Cela crée un assembly d’interopérabilité pour les objets COM dans Shdocvw.dll. Le fichier résultant, Interop.shdocvw.dll, peut être utilisé avec une #using directive. Il peut ensuite être traité comme un composant managé. Pour obtenir des instructions sur la copie automatique de cette bibliothèque de liens dynamiques (DLL) dans le dossier de sortie, consultez la section Utilisation des événements post-build de cet article.

Note

Les variables d’environnement pour Visual C++ doivent être définies pour que les TLBIMP.exe soient reconnues. S’ils ne sont pas définis, vous devez d’abord exécuter ./VC7/BIN/VCVARS32.bat dans Visual Studio .NET ou ./VC/BIN/VCVARS32.bat dans Visual Studio et Visual C++ Express Edition.

Références de projets

Les références de projet sont des références aux assemblys créés par d’autres projets. Là encore, la #using directive est utilisée pour référencer ces assemblys. Toutefois, étant donné que ces assemblys ne sont pas partagés, vous devez prendre des mesures pour vous assurer que le compilateur peut les trouver. Il existe deux méthodes pour effectuer cette opération :

  • Copiez l’assembly dans le dossier du projet.
  • Modifiez les paramètres du projet pour rechercher l’assembly :
  1. Ouvrez la boîte de dialogue Pages de propriété du projet.

  2. Cliquez sur le dossier C/C++ .

    Note

    Dans Visual C++, développez Propriétés de configuration, puis développez C/C++.

  3. Cliquez sur la page de propriétés Général.

  4. Modifiez la propriété Resolve #using References pour pointer vers le dossier qui contient l’assembly cible.

Utilisation d’événements post-build

Les assemblys privés doivent résider dans le même dossier que l’exécutable qui les utilise. Lorsque vous ajoutez une référence en Visual C#, dans Visual Basic .NET ou en Visual Basic, elle est automatiquement copiée dans le dossier de sortie. Dans une application C++ managée, cette étape peut être automatisée par le biais de l’utilisation d’événements post-build . Par exemple, considérez un scénario dans lequel vous avez un assembly nommé MYLIB.dll dans le dossier de projet de votre application C++ managée nommée TestApp. Les étapes suivantes configurent un post-build événement qui copie cette DLL dans le dossier de sortie du projet TestApp .

  1. Ouvrez la boîte de dialogue Pages de propriétés du projet C++ managé.

  2. Cliquez sur le dossier Événements de build.

    Note

    Dans Visual C++, développez Propriétés de configuration, puis développez Événements de build.

  3. Cliquez sur la page de propriétés d’événement post-build.

  4. Modifiez la propriété ligne de commande sur la commande suivante :

    copy $(<ProjectDir>)mylib.dll $(<TargetDir>)  
    

Utilisation de Visual C++ .NET ou Visual C++

En utilisant Visual C++ .NET ou Visual C++, vous pouvez ajouter une référence au moyen de la boîte de dialogue Ajouter une référence . Pour ajouter une référence de projet, procédez comme suit :

  1. Dans l’Explorateur de solutions, sélectionnez le projet .

  2. Dans le menu Projet , cliquez sur Ajouter des références.

    Note

    Dans Visual C++, cliquez sur Références dans le menu Projet, puis sur Ajouter une nouvelle référence.

  3. Dans la boîte de dialogue Ajouter des références , cliquez sur l’onglet correspondant à la catégorie à laquelle vous souhaitez ajouter une référence.

    Note

    Dans Visual C++, cliquez sur l’onglet Parcourir dans la boîte de dialogue Ajouter des références .

  4. Cliquez sur Parcourir, recherchez le composant souhaité sur votre lecteur local, puis cliquez sur OK. Le composant est ajouté au champ Composants sélectionnés .

    Note

    Dans Visual C++, recherchez le composant souhaité sur votre lecteur local.

  5. Pour ajouter la référence sélectionnée à l’onglet actif, cliquez sur Ajouter.

    Note

    Dans Visual C++, cliquez sur OK pour fermer la boîte de dialogue et ajouter le composant dans la zone de liste Références dans la boîte de dialogue Page Propriétés du projet.