BigBulle | 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 :
- #ifdef RACK31DLL_EXPORTS
- #define RACK31DLL_API __declspec(dllexport)
- #else
- #define RACK31DLL_API __declspec(dllimport)
- #endif
- #include "8relais.h"
- #include "24relais.h"
- #include "24Entrees.h"
- #include "carteSon.h"
- #include "addaNew4.h"
- #include "Board31pins.h"
- #include "31FloatVar.h"
- #include "bus31pins.h"
- // Instances exportées
- extern RACK31DLL_API Cbus31pins b31pins;
- extern RACK31DLL_API CaddaNew4 addaNew4_1;
- extern RACK31DLL_API CcarteSon carteSon_1;
- extern RACK31DLL_API C8relais c8relais_1;
- extern RACK31DLL_API C31FloatVar<unsigned char> tensionC;
- extern RACK31DLL_API C31FloatVar<unsigned char> tensionM;
- extern RACK31DLL_API C31FloatVar<unsigned char> courantM;
|
Code :
- #include "stdafx.h"
- #include "rack31Dll.h"
- // Elle sert à quoi cette partie?
- BOOL APIENTRY DllMain( HANDLE hModule,
- DWORD ul_reason_for_call,
- LPVOID lpReserved
- )
- {
- switch (ul_reason_for_call)
- {
- case DLL_PROCESS_ATTACH:
- case DLL_THREAD_ATTACH:
- case DLL_THREAD_DETACH:
- case DLL_PROCESS_DETACH:
- break;
- }
- return TRUE;
- }
- // Création des instances
- RACK31DLL_API Cbus31pins b31pins;
- RACK31DLL_API CaddaNew4 addaNew4_1(&b31pins, 0);
- RACK31DLL_API CcarteSon carteSon_1(&b31pins, 4);
- RACK31DLL_API C8relais c8relais_1(&b31pins, 8);
- RACK31DLL_API C31FloatVar<unsigned char> tensionC(&addaNew4_1, ADDAN4_DAOUT12, (float)62/255,0);
- RACK31DLL_API C31FloatVar<unsigned char> tensionM(&addaNew4_1, ADDAN4_ADIN1, (float)35/255,0);
- 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
|