Création & utilisation dll ( vc++ 6.0 )

Soyez le premier à donner votre avis sur cette source.

Vue 21 009 fois - Téléchargée 3 545 fois

Description

Le principe de la création et de l'utilisation d'une DLL
Comme je ne comprenais pas trop ;)
J'ai fais une tite recherche ;)
et me voila avec un exemple pour tout les jeunots comme moi
qui désire les utilisées ;)

Conclusion :


Ah ah ah ta cru que j'allais le mettre ?

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

nickydaquick
Messages postés
416
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
19 décembre 2013
1 -
oups petite erreur dans les definitions la vrai definition est dans l'exemple precedent :
#ifndef MaCLasee_HPP_
#define MaClasse_HPP_

#ifdef DLL_EXPORTS
#define CLASSE_DLL __declspec(dllexport)
#else
#define CLASSE_DLL __declspec(dllimport)
#endif

puis la classe :
class CLASSE_DLL MaClasse
{
explicit MaClasse();
virtual ~MaClasse();
};
#endif


toutes mes excuses
nickydaquick
Messages postés
416
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
19 décembre 2013
1 -
Si je puis me permettre , j'ai quelquyes trucs sur les DLL, notamment sur VC6.0. Les classes en effet sont exportables dans des dll il suffit de les preceder d'une macro comme suit :

#ifdef DLL_EXPORTS
#define CLASSE_DLL __declspec(dllexport)
else
#define CLASSE_DLL __declspec(dllimport)

puis la classe :
class CLASSE_DLL MaClasse
{
explicit MaClasse();
virtual ~MaClasse();
}

dans votre executable , vous pouvez soit inclure le fichier header contenant la classe et l'instancier directement sans problemes :D. en passant , au niveau de la definition de la macro, par defaut les definitions de preprocesseurs ****_EXPORTS sont deja definies dans votre pojet : nomdeprojet_EXPORTS , sinon definissez la pour la DLL .
Ensuite pour gagner en taille et en rapidite , choisisssez l'option "Use MFC as a shared DLL". Le mot cle extern "C" n'est absolument pas indispensable , ni le getProcAdress .... :D et cela est valide aussi bien pour les classes que pour les structs, unions , fonctions , etc.


Salut
fkx
Messages postés
44
Date d'inscription
jeudi 29 janvier 2004
Statut
Membre
Dernière intervention
26 juin 2006
-
DarkSidious>
Perso, je commence à connaître un p'tit peu C++ Builder 6 (de Borland). Il intègre un module de développement ActiveX. Ca pourrait surement t'aider...

Pour le gain de temps d'éxécution, je te conseille de t'orienter vers l'assembleur (tu peux parfaitement en intégrer dans n'importe quelle portion de code avec BCB comme avec VC++).

Pour ce qui est du passage de pointeurs, ce sera sans problèmes en CPP... par contre, VB ne les aime pas particulièrement (pas possible d'en créer, il faut passer par une variable de type Long) mais je suppose que tu le savais déjà.

J'espère que ce commentaire te sera utile.

Bonne prog à tous !
cs_DARKSIDIOUS
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
83 -
Oui mais le type de dll que je veux faire dois contenir plusieurs fonctions qui doivent accèder à des données communes, et ceci avec plusieurs instances, donc les classes sont bien appropriées pour cà ! Je me vois mal faire des tonnes de tableaux par exemple !

Va falloir que je teste si on peux passer facilement des pointeurs de classe comme des handles pour les fonctions...

DarK Sidious
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16 -
Si tu veux des perfs, laisse tomber les classes au niveau de la dll, ça n'apporte strictement rien a part de la perte de temps en alloc desalloc. C'est plutot vers l'optimisation bas niveau qu'il faudra t'orienter.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.