2013-07-02 5 views
1

Je voudrais créer une bibliothèque statique en C++ pour stocker mes fonctions. Je suis conscient que cette question a été posée sur les forums Cplusplus mais je pourrais vraiment utiliser un une description plus précise de ce qu'il faut faire. Pour autant que je sache, vous créez un nouveau programme Win32, puis ajoutez le fichier d'en-tête (.h) et le fichier de code (.cpp).Bibliothèques statiques et partagées C++

Donc en fait j'ai quelques questions.

1 - Comment mettre mon code dans ces fichiers? Est-ce que j'utilise le .cpp?

2 - J'ai réussi à créer une bibliothèque simple avec une fonction d'ajout seule, mais après avoir compilé et l'avoir construit, je n'ai pas pu l'inclure dans un programme. Pourquoi est-ce?

Quelqu'un pourrait-il s'il vous plaît écrire une approche pour faire ce que je puisse enfin étape par étape le faire. Je suis conscient que MSDN a un tutoriel pour cela, et je l'ai examiné. La chose est qu'il utilise une approche POO pour rendre la bibliothèque statique, et les appels aux fonctions au sein de la bibliothèque utilisent l'opérateur :: (pensez à son opérateur), trop souvent, ce qui est ce que je veux éviter. Aimerais commencer simple, fondamentalement.

Merci pour toute aide.

+0

J'ai ajouté les balises 'windows' et' visual-C++ '; Je suppose que c'est correct? Si non, veuillez les éditer vous-même. – trojanfoe

+0

Pour utiliser une bibliothèque statique dans un autre projet, vous devez inclure le fichier d'en-têtes et le lier au fichier * .lib généré par la bibliothèque. –

+0

Comment faites-vous cela? Je sais que vous #incluez "yourlibrary.h" mais comment liez-vous au fichier .lib et où se trouve ce fichier? – Inafune

Répondre

1

L'idée d'une bibliothèque statique, est que vous écrivez votre code comme d'habitude, mais vous compilez comme une bibliothèque statique. Les utilisateurs d'une bibliothèque statique ont toujours besoin de vos fichiers d'en-tête, mais ils n'ont plus besoin de vos fichiers .CPP, car l'implémentation réelle est contenue dans votre fichier de bibliothèque statique.

Pour utiliser une bibliothèque, vous devez inclure les fichiers d'en-tête dont vous avez besoin, puis liez le fichier de bibliothèque avec votre programme.

Voici un lien vers la procédure pas à pas Microsoft. http://msdn.microsoft.com/en-us/library/vstudio/ms235627.aspx

Comment créer et utiliser une bibliothèque statique à l'aide de Visual Studio

Voici excactly comment vous le faites dans Visual Studio 2012.

  • Pour créer une bibliothèque, créez un nouveau C++ projet. Dans l'assistant, dans Paramètres de l'application, choisissez Bibliothèque statique. Décochez l'en-tête précompilé.
  • Créez votre bibliothèque comme vous le souhaitez. N'oubliez pas de déclarer tout dans les fichiers d'en-tête.
  • Compilez le projet comme d'habitude. Cela crée un fichier .lib dans le dossier de débogage de votre solution
  • Pour utiliser la bibliothèque, créer une application comme vous le feriez habituellement.
  • Pour lier la bibliothèque à votre projet, faites glisser le fichier .lib sur votre projet dans Visual Studio.
  • Pour que Visual Studio trouve vos fichiers d'en-tête, faites un clic droit sur votre projet. Choisissez Propriétés-> Propriétés de configuration-> C/C++. Il existe une zone de saisie appelée Additional Include Directories. Ici, vous devez écrire le chemin vers les fichiers d'en-tête de votre bibliothèque.

Vous pouvez désormais utiliser les fichiers d'en-tête comme s'ils étaient directement créés par votre projet. L'implémentation de votre bibliothèque provient du fichier .lib, et tout devrait se compiler et fonctionner correctement.

Une autre option consiste à référencer l'ensemble du projet libary dans votre application. Pour ce faire, vous devez obtenir le projet de bibliothèque dans votre solution. Cliquez avec le bouton droit sur votre solution dans Visual Studio-> Ajouter-> Projet existant. Ensuite, vous devez référencer le projet. Faites un clic droit sur votre projet-> Références-> Propriétés communes-> Cadre et références-> Ajouter une nouvelle référence-> Choisissez votre projet. Vous pouvez maintenant éditer votre bibliothèque dans cette solution et l'utiliser directement dans votre application.

+0

Merci. J'ai regardé ce stupide lien MSDN toute la journée, mais je l'apprécie quand même. J'écris mon code dans le .h (en-tête)? Pour ce faire, dois-je # inclure toutes les autres bibliothèques dont mon code a besoin? – Inafune

+0

Ecrivez-vous tout votre code dans des fichiers .h? Si cela est vrai, vous devez apprendre à utiliser correctement les fichiers d'en-tête et les fichiers .cpp. C'est très important. Si vous compilez en tant que bibliothèque, vous devrez toujours inclure vos fichiers d'en-tête. Et oui, si votre bibliothèque dépend d'autres bibliothèques, vous devrez également établir un lien avec celles-ci. –

+0

Non, je demandais à Aart si c'était correct parce que je ne croyais pas que c'était vrai. De ce que je sais que vous écrivez les définitions de toutes les fonctions dans le fichier. Cpp. Comme je l'ai déjà mentionné, même si vous avez déjà un livre sur ce sujet, il n'y a jamais une indication claire de ce que vous devez faire pour créer une bibliothèque statique. J'essaye de le faire pour le moment avec le fichier .h lié à mon programme. Comment ajouter le fichier .cpp au programme? MSDN parle de changer les références à travers l'EDI? – Inafune

Questions connexes