Je travaille avec Visual Studio 2012.
Ma solution a 3 projets
projetA
projetB
projetC
et la hiérarchie est comme
projectC dépend de projectB qui, à son tour, dépend de projectA . Il y a une fonction principale dans projectC et aucune principale dans projectB et projectA . Les erreurs que je reçois sont les suivantes:
error LNK1561: entry point must be defined projectA
error LNK1561: entry point must be defined projectB
J'ai essayé de changer dans le Propriétés de configuration -> lieur -> système -> sous-système à la console (/ SUBSYSTEM: CONSOLE) mais le problème persiste toujours
Aidez-moi à sortir de ça.
Il semble que vous ayez mal compris le terme "module". Un tel projet C++ n'existe pas dans Visual Studio. Les projets C++ peuvent être divisés en trois catégories:
exe
qui peut être exécuté.lib
, qui peut être inclus dans un autre projet et lié lors de la compilation.dll
, qui peut être lié à votre programme au moment de l'exécution et fournit des fonctionnalités supplémentaires.Dans votre description, vous souhaitez que les projets projectB et projectC soient des bibliothèques statiques, mais vous les avez plutôt créés sous forme de fichiers exécutables. Exécutez à nouveau le nouvel assistant de projet et choisissez "bibliothèque statique" au lieu de "application Windows".
Vous pouvez en savoir plus sur les bibliothèques statiques dans MSDN library .
Si les bibliothèques statiques sont trop lourdes pour votre application, vous pouvez simplement inclure les fichiers projectB et projectC dans votre projet (éventuellement, occupez-vous des espaces de noms pour ne pas confondre les noms de classes). Tout dépend du nombre de fonctionnalités que vous prévoyez d'implémenter dans ces "modules".
définir Propriétés -> Éditeur de liens -> Système -> Sous-système sur "Windows (/ SUBSYSTEM: WINDOWS)"
Ce qui se passe éventuellement avec moi, c’est que lorsque vous passez de .exe à .dll, si vous passez de debug à release ou de x86 à x64, chaque fois que vous le faites, vous revenez à .EXE. Chaque configuration a ses propres propriétés.
Alors, allez dans Propriétés> Type de configuration> .dll
Si en effet vous voulez faire un .dll.
Je vais deviner que vous utilisez Windows pour créer ce projet. Pour moi, si j’utilise habituellement SDL, j’obtiens cette erreur. Tout ce que vous avez à faire est de taper ce #include <Windows.h>
qui devrait résoudre le problème. ne pas savoir comment résoudre ce problème.