Classe et Dll.

Signaler
Messages postés
10
Date d'inscription
vendredi 8 juillet 2005
Statut
Membre
Dernière intervention
3 octobre 2007
-
Messages postés
224
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
18 octobre 2010
-
Je dois modifier un programme réaliser en VC++, c'est à dire faire un
.exe et d'autre part une dll qui doit gérer le port série et un
protocole de communication. Pour celà je veux réutiliser les classes
déjà faite dans le programme de base et donc les insérer dans une dll.
Le pb c'est que je n'ai pas trouvé d'exemple démontrant l'utilisation
de classe dans une dll et surtout l'exportation de classes à partir
d'une dll. Est-il possible de réaliser un truc dans le genre ?

Si oui, quelle est la solution miraculeuse ?

Si non, il y a t-il une autre solution, du genre ocx ou library quelconque ?

Merci d'avance pour vos nombreuses et intéressantes réponses ...



PS : je ne travail pas en .NET .... le tout (.exe et library) dois etre réalisé en VC++.

7 réponses

Messages postés
252
Date d'inscription
vendredi 10 juin 2005
Statut
Membre
Dernière intervention
5 septembre 2006
1
Exporter une fonction dans la dll qui renvoie une instance de classe.
Messages postés
5
Date d'inscription
mercredi 23 juin 2004
Statut
Membre
Dernière intervention
29 juin 2006

Oui bien sûr,
il est aussi possible d'exporter des classes.
l'exemple par defaut de visual le fait très bien

Luther13
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Ouais ça dépend. Si tu utilise VC98 ya pas de problème. Mais pour les autres aucune idée. Ce que je sais ces que VC2005 en a pas d'exemple de DLL avec des classes.
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Je parle de VS2005 Express. La version complète, aucune idée.
Messages postés
224
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
18 octobre 2010

Oui, VC++ met ce bout de code au début du fichier d'en-tête.

#ifdef MALIB_EXPORTS
#define LIBMALIB _declspec(dllexport)
#else
#define LIBMALIB _declspec(dllimport)
#endif

Ainsi, on peut exporter les membres d'une classe ou même une classe entière.
La macro s'occupera du reste à condition de ne pas oublier de definir MALIB_EXPORTS avec le préprocesseur !
Messages postés
10
Date d'inscription
vendredi 8 juillet 2005
Statut
Membre
Dernière intervention
3 octobre 2007

Mon soucis est surtout du coté de l'application qui utilise la dll. Sur
que l'exemple de VC++ est mignon, mais du coté dll !.... et de l'autre
coté ? Comment on fait pour récupérer la classe ? Ce que j'ai pigé,
c'est qu'il faut exporter le constructeur via une fonction "normale"
... c'est juste ?
Messages postés
224
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
18 octobre 2010

Il te suffit d'inclure le .h de ta classe le code de l'application ansi tu pourra l'utiliser comme si elle en faisait partie.