2010-03-04 5 views
2

J'ai écrit quelques classes, l'arrière-plan d'un projet en C++ (projet win32), puis j'ai voulu ajouter une interface graphique. Visual C++ semblait être une bonne solution, mais après avoir fait la partie GUI je ne pouvais pas intégrer le code C++ ordinaire. Est-ce que quelqu'un a une expérience avec ça? Je reçois une erreur 'non résolue externe'. Apparemment, les fichiers .cpp ne sont pas liés à la dernière étape. Je suppose que certains paramètres du projet doivent également être modifiés, quelqu'un pourrait-il expliquer exactement quoi?Intégration de classes de projet C++ Win32 Console dans le projet Visual C++ (Windows Forms application) dans Visual Studio 2008

Je pensais aussi à compiler les classes en .dll et à les importer dans le projet C++ visuel, est-ce possible ou est-ce que les deux projets peuvent être compilés ensemble?

Merci pour l'aide, j'ai joué avec lui depuis un certain temps déjà, mais je n'ai trouvé aucune solution de travail.

Zoltan

+0

Voulez-vous dire que vous allez de non géré (console Win32) à géré (Windows Forms)? – Mau

+0

S'il vous plaît être plus précis dans ce que vous allez réaliser. Qu'est-ce que vous utilisez comme interface graphique? MFC, WCF, WinForms, Qt, wxWidgets, ...? – frast

Répondre

0

« projet A » doit importer les en-têtes de « Projet B » et il a besoin aussi de lier contre « projet B ».

0

Comment importez-vous ces classes plus anciennes dans votre projet d'interface graphique C++? En tant que bibliothèque, ou juste en tant que fichiers source?

Si seulement des fichiers source, vous pouvez simplement ajouter les fichiers à votre projet et les compiler avec les nouveaux fichiers.

0

Si votre code dorsal est intégré en tant que projet distinct produisant une bibliothèque, vous devez ajouter une dépendance à ce projet à votre application GUI. Si vous n'avez pas intégré le projet à votre solution d'interface graphique, vous devez définir des répertoires, ajouter la lib dans linker-> input et laisser VS savoir comment le trouver en définissant un répertoire de bibliothèque supplémentaire dans les options de l'éditeur de liens.

0

Étant donné qu'il n'y a pas assez de détails pour vraiment pouvoir dire ce qui se passe, il y a un certain nombre de possibilités au sommet de ma tête.

  • Le code pour votre partie back-end n'est pas compilé (les fichiers cpp du projet ne font pas partie du projet GUI ou dépendances associées) si vous n'êtes pas lier le back-end séparément.
  • La bibliothèque de votre projet backend n'est pas liée à; vérifiez la section de liaison des propriétés du projet. Dans le cas où vous liez separtely.
  • Les bibliothèques backend et frontend ont été compilées avec des paramètres différents et au moment de la liaison cela cause des problèmes. Par exemple, déboguer et libérer des bibliothèques standard, des bibliothèques multi-threadées ou à un seul thread; des définitions de chaînes différentes peuvent également causer des problèmes si elles ne correspondent pas (en particulier si vous avez utilisé du code de modèle).

Il est tout à fait possible de construire une DLL avec la partie backend si vous le souhaitez. Si ça ne va pas être utilisé par quelque chose d'autre, je ne m'en soucierais probablement pas et relierais statiquement, mais vous le pouvez certainement.

Questions connexes