begin process at 2012 02 10 13:11:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

System

 > 

Dynamic dll et GetProcAddress


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Dynamic dll et GetProcAddress

lundi 23 octobre 2006 à 16:36:24 | Dynamic dll et GetProcAddress

wizzo

Bonjour,

J'essaye actuellement de charger dynamiquement une dll.
J'arrive à charger une méthode C++ d'une classe grace à un EXPORT dans un .def. Cependant, la methode est identifié par son nom, et le nom de la classe de figure pas. Pour la class suivante :

classakClass {
public:
   int Function(void);
};

J'aimerai pouvoir specifier dans le .def :

LIBRARY lib
EXPORTS
akClass::Function

Le but étant d'exporter 2 méthodes depuis la dll, ces deux methodes ayant le mme nom, mais etant dans 2 classes differentes, et ayant donc 2 implementations differentes.


Cependant, j'obtiens dans ce cas (à la compilation) le message suivant :

lib.def : error LNK2001: unresolved external symbol akClass::Function

Est-ce au moins possible ?? et si oui, comment ?
Merci d'avance
wizzo
lundi 23 octobre 2006 à 23:04:55 | Re : Dynamic dll et GetProcAddress

yann_lo_san

utilise plutot que le .def le mot clef de ton compilateur pour exporter une classe, genre

class __declspec(dllexport) akClass
{ spécifications };
lundi 23 octobre 2006 à 23:19:43 | Re : Dynamic dll et GetProcAddress

yann_lo_san

Ou tu peux faire dan le .def un genre d'alias
EXPORT
functionSameName = otherName

mercredi 25 octobre 2006 à 18:50:58 | Re : Dynamic dll et GetProcAddress

wizzo

en effet, je viens de faire ça avec les alias.

Pour les __declspec(dllexport), je croyais que ça ne marchais que pour les imports/exports statics ?


mercredi 25 octobre 2006 à 19:00:18 | Re : Dynamic dll et GetProcAddress

wizzo

Dès fois que mes idées ne soient pas clair :

Ce que je veux faire est en fait tres proche des dll d'extension deMFC (mais sans utiliser les MFC), cad pouvoir dans une dll créer une class (akClass) qui hérite d'une classe dispo dans mon framework (akMotherClass), et pouvoir depuis le .exe qui charge la dll appeler les methodes surchargées par akClass.
Pour ça j'ai :
    - Exporté les methodes surchargée de akClass grace à un .def
    - Créé une classe 'virtuelle' dans le .exe qui recupere les methodes avec un GetProcAddress

ya t il moyen de faire plus simple ?

De plus lorsque j'accède aux methodes de la dll, je ne peux pas acceder au données membres sous peine de plantage....
mercredi 25 octobre 2006 à 21:41:48 | Re : Dynamic dll et GetProcAddress

yann_lo_san

Tu peux faire un genre de singleton que tu instancie directement dans le DLLMAIN() qu'une seule fois, et tu exportes l'objet instancié qui te permettra d'acceder à toutes la classe.
Mais je n'ai jamais utilisé ce genre de code.
Bonne continuation.



Cette discussion est classée dans : dll, charger, dynamic, def, getprocaddress


Répondre à ce message

Sujets en rapport avec ce message

dll .def [ par moloko2000 ] Que signifie cette erreur ?hop.def : warning LNK4017: s400_ipdetail@@YGPADHHQAD@Z statement not supported for the target platform; ignoredJe n'arrive Charger ressource DLL [ par garslouche ] Bonjour à tousJ'ai un curseur dans les resources d'un DLL que je voudrais utiliser dans mon EXE.J'utilise ceci:HMODULE hModule = LoadLibrary("DLLres.d LoadLibrary -> Impossible de charger la librairie (builder C++ 6) [ par franckies ] Salut à tous !Voila j'utilise builder C++ 6 et à l'aide d'un tuto j'ai recopié un hook de clavier pour pouvoir réalisé une patite appli.Pour créer ce DLL sou VS.net2003, puis de la DLL à la XLL [ par gadzou ] Bonjour, Dans l'extension via DLL C++ des fonctionnalités de VBA, j'adoptais sous VS6.0 l'architecture .def + .h + .cpp, où le .def contenait <spa Charger une librairie avec SDL [ par gillescpp ] Bonjour,J'aimerais avoir access aux fonctions de opengl supérieur a 1.1 (et contenu dans glext.h)Il me faut pour cela utiliser SDL_GL_LoadLibrary pour problème simple sur les DLL [ par phenX ] salut,voila, je suis débutant en création de DLL et je n'y arrive pas.J'utilise DevCPPJ'ai créé un projet PROJET1.DEV, dedans j'ai un fichier "Def.h" Besoin d'une toute petite dll [ par DjPoke ] Bonjour !J'aurais un besoin urgent d'une dll qui existe peut etre deja dans l'api et je debute en C.En fait, il me faut juste une fonction qui appelle .def sous VC++ [ par AlexMAN ] Hello all, alors voilà le pb : j'ai commencé la prog dll en C sous VC++ mais mais mes fonctions une fois compilé ont des décorations. Ex : intlen devi Utilisation DLL SANS .lib [ par nasedo47 ] J'ai récupéré une DLL sur un site ainsi qu'une page avec les prototypes de toutes les fonctions contenues dans cette DLL.J'aimerais utiliser ces fonct Comment charger une dll en c ? [ par moloko2000 ] MOLOCHQuel est la manière la plus simple de charger une dll en c?


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales