# Guide du C++ pour .NET Configuration

Guide de Programmation en C++ pour .NET Chapitre 1 : Configuration de Visual Studio .NET :
| << retour au sommaire | Chapitre 2 : Programmation C++ .NET >> |
Lors de la compilation ou de l'édition de liens, quelques erreurs peu explicites peuvent se déclarer pour des raisons de mauvaise configuration de votre projet, ou même des préférences générales de Visual Studio.

# La configuration du projet
## Les références « gérées »

Les références « gérées » (« managées ») correspondent aux DLL (ou autres projets) réalisés grâce à la technologie .NET (projets C#, VB.NET…), que vous avez besoin d'intégrer dans votre propre projet. Dans la fenêtre où figurent votre arborescence de fichiers, figure un élément « Références » sur lequel vous devez faire un clic avec le bouton secondaire (« clic-droit » si la souris est configurée pour un droitier) afin de sélectionner « ajouter une nouvelle référence ».
Plusieurs onglets sont présents dont :
* l'onglet .NET Framework permettant d'ajouter des assemblages .NET référencés,
* l'onglet COM permettant d'ajouter des composants COM référencés,
* l'onglet Projet permettant de choisir les DLL résultant de la compilation de vos projets .NET
Si mystérieusement un namespace de la plate-forme .NET semble inexistant à la compilation, vérifiez qu'il est bien présent dans l'arborescence des références, si son nom y figure bien. Sinon procédez avec le premier onglet décrit ci-dessus.

## Les références « non gérées »

Les références « non gérées » (« non managées ») correspondent aux DLL classiques réalisées sans la technologie .NET (projets VC++ 6 par exemple). Ces DLL doivent être présentes dans le répertoire de sortie (où l'exécutable sera créé et exécuté, par défaut le répertoire Debug).

## Le debugage mixte en C++ pour .NET

Pour débuguer à la fois le code pour .NET et le code non spécifique (d'un projet intégré comme référence non .NET), il est nécessaire de mettre à True l'option de Debugage mixte dans les propriétés du projet. Si ce n'est pas le cas, le débugueur étape par étape n'entrera pas dans une fonction non .NET et passera directement à l'instruction suivante.

## Bibliothèque Runtime et Erreur LNK2005

L' erreur LNK2005 peut survenir à l'édition de lien. Le premier réflexe est de vérifier que l'option Bibliothèque Runtime est bien à la même valeur que le projet que vous avez intégré comme référence (managée ou non). Si l'erreur persiste alors que cette option correspond bien avec les autres projets, alors consultez la MSDN qui propose une liste des éléments à vérifier.

## Configuration classique — Les dépendances

Ne jamais oublier d'ajouter les répertoires de bibliothèques supplémentaires ainsi que les dépendances dont vous avez besoin. On y pense moins quand on compile un autre projet que le sien.

## Configuration classique - Les variables de configuration

Les variables $IntDir, $OutDir, $SolutionDir, $TargetPath (et autres) contenant les chemins utiles à la compilation sont initialisés automatiquement lorsque les champs correspondants (« Répertoire de sortie », …) sont remplis dans la fenêtre de configuration du projet. Le piège est que le nom de la variable n'y figure pas, seule est affichée la traduction en français (selon votre version de Visual Studio).

# Les préférences générales de Visual Studio
## Les répertoires

Si des dépendances sont communes à tous vos projets vous pouvez inclure leurs chemins dans les préférences de Visual Studio. Si vous compilez des projets dont vous n'êtes pas l'auteur, ce point peut avoir été oublié.