exporter des instances de classes d'une Dll

exporter des instances de classes d'une Dll - C++ - Programmation

Marsh Posté le 27-12-2004 à 10:23:40    

Bonjour ! :)  
 
Je travaille sous VC++6.0 et j'exporte des instances de classes d'une Dll vers différents programmes.  
J'aimerais cependant que tous ces programmes voient les mêmes instances et non des copies.
 
Comment puis-je faire cela?  
 
Voici mes fichiers .h et .cpp:
 

Code :
  1. #ifdef RACK31DLL_EXPORTS
  2. #define RACK31DLL_API __declspec(dllexport)
  3. #else
  4. #define RACK31DLL_API __declspec(dllimport)
  5. #endif
  6. #include "8relais.h"
  7. #include "24relais.h"
  8. #include "24Entrees.h"
  9. #include "carteSon.h"
  10. #include "addaNew4.h"
  11. #include "Board31pins.h"
  12. #include "31FloatVar.h"
  13. #include "bus31pins.h"
  14. // Instances exportées
  15. extern RACK31DLL_API Cbus31pins b31pins;
  16. extern RACK31DLL_API CaddaNew4 addaNew4_1;
  17. extern RACK31DLL_API CcarteSon carteSon_1;
  18. extern RACK31DLL_API C8relais c8relais_1;
  19. extern RACK31DLL_API C31FloatVar<unsigned char> tensionC;
  20. extern RACK31DLL_API C31FloatVar<unsigned char> tensionM;
  21. extern RACK31DLL_API C31FloatVar<unsigned char> courantM;


 

Code :
  1. #include "stdafx.h"
  2. #include "rack31Dll.h"
  3. // Elle sert à quoi cette partie?
  4. BOOL APIENTRY DllMain( HANDLE hModule,
  5.                        DWORD  ul_reason_for_call,
  6.                        LPVOID lpReserved
  7.      )
  8. {
  9.     switch (ul_reason_for_call)
  10. {
  11.  case DLL_PROCESS_ATTACH:
  12.  case DLL_THREAD_ATTACH:
  13.  case DLL_THREAD_DETACH:
  14.  case DLL_PROCESS_DETACH:
  15.   break;
  16.     }
  17.     return TRUE;
  18. }
  19. // Création des instances
  20. RACK31DLL_API Cbus31pins b31pins;
  21. RACK31DLL_API CaddaNew4 addaNew4_1(&b31pins, 0);
  22. RACK31DLL_API CcarteSon carteSon_1(&b31pins, 4);
  23. RACK31DLL_API C8relais c8relais_1(&b31pins, 8);
  24. RACK31DLL_API C31FloatVar<unsigned char> tensionC(&addaNew4_1, ADDAN4_DAOUT12, (float)62/255,0);
  25. RACK31DLL_API C31FloatVar<unsigned char> tensionM(&addaNew4_1, ADDAN4_ADIN1, (float)35/255,0);
  26. RACK31DLL_API C31FloatVar<unsigned char> courantM(&addaNew4_1, ADDAN4_ADIN2, (float)200e-3/255,0);


 
PS: Chacun des fichiers .h des classes déclarées contient les commandes conditionnelles d'import/export...
 
Je suis un peu perdu... Je crois que je dois utiliser la commande #pragma... mais je sais pas comment...
 
Un tout grand merci d'avance,  :)  
 
BigBulle...


Message édité par BigBulle le 28-12-2004 à 09:57:34
Reply

Marsh Posté le 27-12-2004 à 10:23:40   

Reply

Sujets relatifs:

Leave a Replay

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