Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2915 connectés 

  FORUM HardWare.fr
  Programmation

  Dll en C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Dll en C++

n°63881
Spinner
Posté le 07-10-2001 à 19:00:35  profilanswer
 

J'ai un problème avec le C++, car j'obtient des erreurs de Link LNK2001.
Je crée une dll et ce que je veux, c'est créer une classe ayant des méthodes appellées au sein de la dll mais dont la définition se trouve dans le programme.
Je pense que je ne doit pas utiliser le mot clé 'virtual' pour réaliser ce que je veux...
Voilà mon code:
 
#ifdef ENGINE_EXPORTS
#define ENGINE_API __declspec( dllexport )
#else
#define ENGINE_API __declspec( dllimport )
#endif
 
class ENGINE_API CEngine
{
  virtual HRESULT Initialization();
  virtual HRESULT FrameMove();
 
public:
  CEngine( void );
  ~CEngine();
 
  virtual LRESULT MsgProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
};
 
Merci ;)

mood
Publicité
Posté le 07-10-2001 à 19:00:35  profilanswer
 

n°63892
Spinner
Posté le 07-10-2001 à 19:41:04  profilanswer
 

C'est ptet pas très clair:
En fait, je veux déclarer des fonctions dans ma Dll mais leur définition doivent être écrites dans le code du programme qui utilise la Dll.

n°63893
youdontcar​e
Posté le 07-10-2001 à 19:44:58  profilanswer
 

non, c'est vraiment pas clair.
 
en général la dll contient du code 'autonome' (ou dépendant d'autres dll) qu'un programme principal appelle.  
 
utiliser dans la dll des fonctions écrites dans le programme ... hmmm pas bien bon ça. apparemment il te faut plutôt deux dll : une de base qui contient tes fonctions, la deuxième qui utilise la première, et l'exe qui utilise les deux.
 
enfin tu devrais plutôt détailler ce que tu veux faire ...

n°63898
TheJackal
Posté le 07-10-2001 à 20:31:43  profilanswer
 

:pt1cable:  :hap:

n°63901
Spinner
Posté le 07-10-2001 à 20:50:29  profilanswer
 

En fait, dans la dll j'initialise de nombreux éléments puis je veux appeller une fonction (écrite dans le prog qui utilise la dll) pour que l'on puisse ajouter du code dans l'initialisation.

n°63906
TheJackal
Posté le 07-10-2001 à 20:58:21  profilanswer
 

c pas une super conception d'un prog je trouve

n°63912
Spinner
Posté le 07-10-2001 à 21:07:09  profilanswer
 

Je crois que t'a raison. Je devrais plutot changer de conception.

n°63916
TheJackal
Posté le 07-10-2001 à 21:11:53  profilanswer
 

good choice
une dll qui appelle une fonction du prog... quoique que avec un callback mais fo voir l'usage que tu va en faire

n°63917
youdontcar​e
Posté le 07-10-2001 à 21:13:07  profilanswer
 

le plus simple à faire : tu dérives de CEngine.
 
dans ton .exe :
 
// .h
class CEngine2 : public CEngine
{
 virtual HRESULT Initialization();
};
 
// .cpp
HRESULT CEngine2::Initialization()
{
   CEngine::Initialization();
   // init en plus ...
}
 
//
 
sinon, passer en paramètre d'init une callback qui sera appelée ...
 
//
 
et au fait tu ajouter quoi comme code d'init ?

n°63920
TheJackal
Posté le 07-10-2001 à 21:15:59  profilanswer
 

la tu appelle la dll mais comment la dll appelle le prog?
et pkoi pas callback?

mood
Publicité
Posté le 07-10-2001 à 21:15:59  profilanswer
 

n°63923
Spinner
Posté le 07-10-2001 à 21:29:11  profilanswer
 

Merci de vos conseils mais je suis convaincu que je m'y prend mal. Je vais faire autrement.

n°63924
TheJackal
Posté le 07-10-2001 à 21:35:06  profilanswer
 

chite question comme ca:
c a cause des MFC que tu met un C devant les noms de class ou c un choix perso

n°63929
Spinner
Posté le 07-10-2001 à 21:54:30  profilanswer
 

Na, c un choix perso ! Je respecte les préfixes hongrois :)

n°63972
Willytheki​d
Posté le 08-10-2001 à 10:24:57  profilanswer
 

Je pense que tu veux parler de fonctions virutelles pures (qui t'oblige a reécrire une partie de ta classe dans ton prg)...Je vois que ca...
 
Avec une simple fonctions virtuelles tu es obligé de définir une fonction par defaut.


---------------
Si t'es pas net, reste a la buvette

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Dll en C++

 

Sujets relatifs
utiliser une DLL windows ?!Faut cette DLL pour lire un menu fait en VB 6 ?
comment utiliser une fonction d'une Dll sous Visual C++6[VC++] Dll et STL: probleme de recopie (???)
Problème DLL ???Exporter une class template à partir d'un DLL avec Borland C++ Builder
Liste des fonctions dans une DLL.[DLL] Des infos sur shdoclc.dll ?
[C++ & DLL pour les nuls]c quoi une DLL si vou plé ?
Plus de sujets relatifs à : Dll en C++


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR