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 d’origine du produit : Visual C++
Numéro de la 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 des 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’assemblySystem.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 le 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 d’utilisation 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 les Explorer Internet à 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 le dossier de votre projet.

Cela crée un assembly d’interopérabilité pour les objets COM dans Shdocvw.dll. Le fichier obtenu, 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 d’événements post-build de cet article.

Remarque

Les variables d’environnement pour Visual C++ doivent être définies pour que TLBIMP.exe soient reconnus. 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 projet

Les références de projet sont des références à des 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és du projet.

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

    Remarque

    Dans Visual C++, développez Propriétés de configuration, puis 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 dans Visual C#, dans Visual Basic .NET ou dans Visual Basic, elle est automatiquement copiée dans le dossier de sortie. Dans une application C++ managée, cette étape peut être automatisée via l’utilisation d’événements post-build . Par exemple, imaginez 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 copiera 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 génération .

    Remarque

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

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

  4. Remplacez la propriété Ligne de commande par la commande suivante :

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

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

À l’aide de Visual C++ .NET ou Visual C++, vous pouvez ajouter une référence à l’aide 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 Explorateur de solutions, sélectionnez le projet.

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

    Remarque

    Dans Visual C++, cliquez sur Références dans le menu Projet , puis cliquez 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.

    Remarque

    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 .

    Remarque

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

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

    Remarque

    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 de la boîte de dialogue Page propriétés du projet.