Puis-je mélanger C ++ et C dans un seul projet dans Visual Studio?
J'ai une DLL Win32 projet dans VS2008, il est écrit dans une poignée de modules en C.
Parce que je aussi voulez être en mesure de construire à l'extérieur de VS2008, avec aucune dépendance sur VS2008, j'ai produit une coutume makefile, qui ne tous les de construire et de lien étapes. Tout cela est mis en place juste fine.
Maintenant, je voudrais ajouter un couple de C++ modules de cette DLL.
J'ai modifié la coutume makefile pour compiler le .rpc modules C++, et la .c modules régulière C (/Tc) . Tout cela fonctionne. Il relie tout ensemble, pas de problème .
Puis-je configurer le VS2008 projet de faire de même?
Puis-je mélanger du C++ et de C dans le même VS2008 projet?
Ou dois-je besoin d'une étape de génération personnalisée pour cela?
Grâce.
RÉPONSE
J'ai eu le VS2008 projet pour compiler C. j'avais besoin de changer pour Compiler Comme "par Défaut". Cliquez-droit sur le projet, sélectionnez Propriétés, puis... :
le texte d'alt http://i33.tinypic.com/qqsd8g.jpg
Merci, Pavel.
source d'informationauteur Cheeso
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, vous ne devriez même pas besoin
/Tc
si vous construisez vous-même - cl.exe utilise l'extension de fichier pour déterminer le type, donc .c fichiers seront compilés comme C par défaut, et .rpc et .cxx les fichiers C++.Pour VS les projets, il travaille dans exactement de la même manière, sauf que vous ne pouvez pas remplacer ce comportement (ou, au moins, je ne sais pas comment).
Il n'y a absolument aucun problème de mélange de C et de C++ dans le même projet. Tout ce que vous aurez besoin de le faire pour la conception de votre interface entre le C et le C++ modules en termes de fonctions en C et C des structures de données, puis assurez-vous que les fonctions de l'interface sont déclarées sur le C++ côté avec C-spécificateur de liaison
extern "C"
.Ils doivent ajouter des fines, considérant le compilateur Microsoft C compiler à la fois. Si vous ajoutez-les au projet, ils ont réussi à
cl
-- et je crois quecl
fait un choix quel est le mode à utiliser en fonction de l'extension du fichier. Vous êtes à l'aide de.cpp
ce qui est bon.En bref: Oui.
GCC va faire trop, de sorte que votre makefile doit être raisonnablement portable.