Création d'une dll

Création d'une dll - C++ - Programmation

Marsh Posté le 01-09-2007 à 12:18:39    

Hello.
 
J'ai ce fichier : fct.h

Code :
  1. class C
  2. {
  3. public:
  4.  virtual ~C();
  5.  virtual void fct() = 0;
  6. };


 
Et fct.cpp:

Code :
  1. #include "fct.h"
  2. C::~C()
  3. {
  4. }


 
Ensuite je compile tout ça sous forme de DLL et ça fonctionne très bien.
 
Pour finir j'ai main.cpp qui utilise la DLL:

Code :
  1. #include "fct.h"
  2. #include <iostream>
  3. using namespace std;
  4. class Deriv : public C
  5. {
  6. public:
  7.  ~Deriv(){}
  8.  void fct()
  9.  {
  10.   cout<<"deriv"<<endl;
  11.  }
  12. };
  13. int main()
  14. {
  15. Deriv *a = new Deriv;
  16. a->fct();
  17. return 0;
  18. }


 
Ca fonctionne bien mais lors du linkage, j'ai ce message que je trouve pas très beau:

Info: resolving vtable for C by linking to __imp___ZTV1C (auto-import)


 
D'où vient le "problème" et comment le résoudre, merci ?


Message édité par vincent0 le 01-09-2007 à 23:53:28
Reply

Marsh Posté le 01-09-2007 à 12:18:39   

Reply

Marsh Posté le 02-09-2007 à 08:27:01    

Sans vouloir faire le dinosaure pas à jour, mais de mon temps, on exportait pas des classes abstraites depuis un DLL comme des porcs. On passe par des fonctions C genre CreateInstanceOfxxxx et ReleaseInstanceOfxxx + une mini factory. Lex fonctions ont les seuls trucs exportés, la factory s'arrangeant pour générer les trucs qu'il faut (un peu comme COM).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed