Creation DLL avec Visual Studio .NET 2003

Fermé
Alex - 1 mars 2005 à 11:23
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 - 31 mai 2010 à 23:19
Bonjour
J'ai une jolie collection de classes C++... Comme plusieurs de mes programmes utilisent ces classes, j'aimerais toutes les intégrer dans une DLL. Hors parmis les projets disponibles dans VC .NET 2003 (Une usine à gaz !!!), il y a "DLL with MFC" mais pas de quoi faire juste une DLL toute simple, classique...

La question à 1000 euros : Comment créer une DLL toute simple, juste avec mes petites classes, avec VC .NET 2003 ?
A voir également:

2 réponses

jean-pierreL Messages postés 792 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 10 mai 2014 65
31 janv. 2006 à 15:00
bonjour tout le monde,
voila ce que j'ai trouvé dans les nombreuses réponses
si ca peux t'aider.

Concepts Visual C++ : ajout de fonctionnalités

Types de DLLVoir aussi
DLL
Cette rubrique contient des informations destinées à vous aider à déterminer le type de DLL à générer.

Différents types de DLL disponibles
Visual C++ permet de générer des DLL Win32 en C ou C++ qui ne font pas appel à la bibliothèque MFC (Microsoft Foundation Class). Vous pouvez créer un projet de DLL non-MFC à l'aide de l'Assistant Application Win32.

La bibliothèque MFC elle-même est disponible, soit dans les bibliothèques de liaisons statiques soit dans un certain nombre de DLL, avec l'Assistant DLL MFC. Si votre DLL utilise les MFC, Visual C++ prend en charge trois scénarios différents de développement de DLL :

Génération d'une DLL normale liée de manière statique aux MFC.
Génération d'une DLL normale liée de manière dynamique aux MFC.
Génération d'une DLL d'extension MFC. Ce type de DLL est toujours lié de manière dynamique aux MFC.
Sur quels éléments souhaitez-vous obtenir des informations supplémentaires ?
DLL non-MFC : vue d'ensemble
DLL normales liées de manière statique aux MFC
DLL normales liées de manière dynamique aux MFC
DLL d'extension : vue d'ensemble
Type de DLL à utiliser
Type de DLL à utiliser
Si la DLL ne fait pas intervenir les MFC, utilisez alors Visual C++ pour générer une DLL Win32 non-MFC. La liaison de la DLL aux MFC (de manière statique ou dynamique) mobilise d'importantes ressources en termes de mémoire et d'espace disque. Vous ne devez procéder à une liaison avec les MFC que si la DLL les utilise réellement.

Si la DLL est destinée à utiliser les MFC, et à être utilisée par des applications MFC ou non-MFC, vous devez alors générer une DLL normale liée de manière dynamique aux MFC ou une DLL normale liée de manière statique aux MFC. Dans la plupart des cas, vous souhaiterez probablement utiliser une DLL normale liée de manière dynamique aux MFC car la taille du fichier de la DLL sera plus petite et l'économie réalisée au niveau des ressources mémoire peut être importante compte tenu de l'utilisation de la version partagée des MFC. Si vous optez pour une version liée de manière statique aux MFC, la taille du fichier de la DLL sera plus grande et occupera vraisemblablement une portion supplémentaire de la mémoire car elle chargera sa propre copie privée du code de la bibliothèque MFC.

Il est plus rapide de générer une DLL liée de manière dynamique aux MFC qu'une DLL liée de manière statique aux MFC car il n'est pas nécessaire de lier les classes de la bibliothèque MFC à elles-mêmes. Ceci est particulièrement vrai dans les versions Debug où l'éditeur de liens doit compacter les informations de débogage. En établissant une liaison avec une DLL qui contient déjà des informations de débogage, il y a moins d'informations de débogage à compacter dans la DLL.

L'un des inconvénients de la liaison dynamique avec les MFC est que vous devez distribuer les DLL partagées MFCx0.DLL et MSVCRT.DLL (ou des fichiers similaires) avec votre DLL. Les DLL MFC peuvent être redistribuées librement, mais vous devez toujours installer les DLL dans le programme d'installation. De plus, vous devrez livrer MSVCRT.DLL, qui contient la bibliothèque runtime du C laquelle est utilisée à la fois par votre programme et les DLL MFC elles-mêmes.

Si la DLL est destinée à être utilisée par des exécutables MFC, vous avez le choix entre générer une DLL normale et générer une DLL d'extension. Si la DLL implémente des classes réutilisables dérivées de classes MFC existantes, ou si vous avez besoin de passer des objets dérivés des MFC entre l'application et la DLL, vous devez alors générer une DLL d'extension.

Si la DLL est liée de manière dynamique aux MFC, les DLL MFC peuvent être redistribuées avec la DLL. Cette architecture est particulièrement utile pour le partage de la bibliothèque de classes entre plusieurs fichiers exécutables afin d'économiser l'espace disque et de réduire l'utilisation de la mémoire.

Avant la version 4.0, Visual C++ ne prenait en charge que deux types de DLL fondés sur les MFC : USRDLL et AFXDLL. Une DLL normale liée de manière statique aux MFC possède les mêmes caractéristiques que l'ancienne USRDLL. Les DLL d'extension MFC possèdent les mêmes caractéristiques que l'ancienne AFXDLL.

Sur quels éléments souhaitez-vous obtenir des informations supplémentaires ?
DLL non-MFC : vue d'ensemble
DLL normales liées de manière statique aux MFC
DLL normales liées de manière dynamique aux MFC
DLL d'extension : vue d'ensemble
Voir aussi
DLL



--------------------------------------------------------------------------------

Envoyer vos commentaires sur cette rubrique à Microsoft

© Microsoft Corporation. Tous droits réservés.


a+jp
5
davidengello Messages postés 19 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 1 décembre 2012
17 juin 2008 à 13:07
bonjour,
pour ma part ,j'ai +SIEURS fichiers en C et je voudrais obtenir des DLLs qui seront appelé par un code C# ,plus exactement des methodes de web service.
merci dev m'orienter si vous avez une idée.
0
youscoul Messages postés 125 Date d'inscription dimanche 10 août 2008 Statut Membre Dernière intervention 7 janvier 2013 4
10 mai 2010 à 10:24
Si tu fais des infos que t'as trouvé quelque part, prié de mettre la source pour le bien être de la communauté. Merci
0
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
10 mai 2010 à 13:53
Pour utiliser des DLL en C++ facilement en C# il faut faire du C++ managé (compilé avec le .NET Framework).

Sinon pour faire des DLL autant en C# qu'en C++ moi je commence simplement un nouveau projet "Class Library".
1
youscoul Messages postés 125 Date d'inscription dimanche 10 août 2008 Statut Membre Dernière intervention 7 janvier 2013 4
10 mai 2010 à 14:09
En fait moi je dispose du code dejà ecrit en C, je veux le compiler afin de constitué une bibliothèque utilisable par la suite. Est ce le type de projet " Win32 project" devrais-je prendre pour celà ? Je fais pas du C++. Mais C standard. Merci.
0
youscoul Messages postés 125 Date d'inscription dimanche 10 août 2008 Statut Membre Dernière intervention 7 janvier 2013 4
10 mai 2010 à 14:10
PS/ Je travaille sous Visual studio 2008
0
Je suis dans le meme cas que youscoul alors si quelqu'un a une reponse a apporter je vous en serais reconaissant.
Merci.
0
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
31 mai 2010 à 23:19
Essaye de chercher un peu de ce côté il doit y avoir des trucs intéressants :
https://www.google.be/search?hl=fr&q=Creating+library+visual+studio&aq=f&aqi=&aql=&oq=&gs_rfai=&gws_rd=ssl

Sinon comme je l'ai dit moi je commence juste un nouveau projet "Class Library" et hop c'est bon j'ai ma DLL quand je génère le projet.
0