Question

Je travaille sur un jeu utilisant Visual C ++. J'ai des composants dans des projets distincts et ai défini les dépendances du projet. Comment puis-je inclure un fichier d'en-tête provenant d'un projet différent? Je ne sais pas comment utiliser les classes d'un projet dans un autre.

Était-ce utile?

La solution

Paramètres du compilateur

Dans le projet où vous souhaitez # inclure le fichier d'en-tête de un autre projet, vous devez ajouter le chemin du fichier d'en-tête dans la section Répertoires d'inclusion supplémentaires . dans la configuration du projet.

Pour accéder à la configuration du projet:

  1. Cliquez sur le projet avec le bouton droit de la souris et sélectionnez Propriétés.
  2. Sélectionnez Propriétés de configuration - > C / C ++ - > Général.
  3. Définissez le chemin sous Répertoires d'inclusion supplémentaires.

Comment inclure

Pour inclure le fichier d'en-tête , écrivez simplement ce qui suit dans votre code:

#include "filename.h"

Notez que vous n'avez pas besoin de spécifier le chemin ici, car vous incluez déjà le répertoire dans les répertoires d'inclusion supplémentaires afin que Visual Studio sache où le rechercher.

Si vous ne souhaitez pas ajouter chaque emplacement de fichier d'en-tête dans les paramètres du projet, vous pouvez simplement inclure un répertoire, jusqu'à un point, puis #include par rapport à ce point:

// In project settings
Additional Include Directories    ..\..\libroot

// In code
#include "lib1/lib1.h"    // path is relative to libroot
#include "lib2/lib2.h"    // path is relative to libroot

Paramétrage de l'éditeur de liens

Si vous utilisez des bibliothèques statiques (c'est-à-dire un fichier .lib), vous devrez également ajouter la bibliothèque à l'entrée de l'éditeur de liens, afin qu'au moment de la liaison les symboles puissent être liés (sinon, vous obtiendrez un symbole non résolu):

  1. Cliquez sur le projet avec le bouton droit de la souris et sélectionnez Propriétés.
  2. Sélectionnez les propriétés de configuration - > Éditeur de liens- > Entrée
  3. Entrez la bibliothèque sous Dépendances supplémentaires.

Autres conseils

#include n'a rien à voir avec les projets - il indique simplement au préprocesseur "mettez le contenu du fichier d'en-tête ici". Si vous lui donnez un chemin qui pointe vers le bon emplacement (il peut s'agir d'un chemin relatif, comme ../votre_fichier.h), il sera correctement inclus.

Vous devrez toutefois vous renseigner sur les bibliothèques (bibliothèques statiques / dynamiques) pour pouvoir lier correctement ces projets - mais c'est une autre question.

Vous devez définir le chemin d'accès aux en-têtes dans les propriétés du projet afin que le compilateur y regarde lorsque vous essayez de trouver le ou les fichiers d'en-tête. Je ne me souviens pas de l'emplacement exact, mais examinez bien les propriétés du projet et vous devriez le voir.

Essayez d'éviter les références de chemin complet dans la directive #include, qu'elles soient absolues ou relatives. Au lieu de cela, ajoutez l'emplacement du dossier d'inclusion de l'autre projet dans les paramètres de votre projet. Utilisez uniquement des sous-dossiers dans les références de chemin si nécessaire. De cette façon, il est plus facile de déplacer des éléments sans avoir à mettre à jour votre code.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top