Bonjour,

J'utilise C::B avec la dernier version disponible de Gcc par Mingw (4.5) pour programmer une carte d'acquisition Analogique -> Numérique de marque Advantech sous winXP.
Actuellement j'utilise la bibliothèque fournit par défaut et aucun problème ça marche.
Mais en voulant installer ce logiciel sur Win7 la bibliothèque n'a pas été évoluée et Advantech fournis à la place une nouvelle library qui fonctionne sous XP, Vista et 7.
Bien que le fonctionnement global de cette nouvelle biblio soit identique, je me retrouve confronter un ce problème :
Elle a été faite pour VC10 et une fois la transposition de mon logiciel réaliser je ne peut pas compiler suite à ce bout de code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
errorCode = ai->Property.Set( CFG_ScanChannelStart,startChannel );
la variable ai est de type BDaqAi ( entête si dessous )

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class BDaqAi : public BDaqModule
{
public:
 
   // instant AI single channel methods
   ErrorCode Read(long channel, double& dataScaled);
   ErrorCode Read(long channel, short& dataRaw);   // for the device whose raw data is in 16bits format
   ErrorCode Read(long channel, long& dataRaw);    // for the device whose raw data is in 32bits format
 
   // instant AI multi channel methods
   ErrorCode Read(long chStart, long chCount, double dataScaled[]);
   ErrorCode Read(long chStart, long chCount, short dataRaw[], double dataScaled[]);   // for the device whose raw data is in 16bits format
   ErrorCode Read(long chStart, long chCount, long dataRaw[], double dataScaled[]) ;   // for the device whose raw data is in 32bits format
 
   // buffered AI methods
   ErrorCode BfdAiPrepare(long dataCount, void* * dataRaw);
   ErrorCode BfdAiRunOnce(bool asynchronous);
   ErrorCode BfdAiRun();
   ErrorCode BfdAiScaleData(void* dataRaw, double dataScaled[], long dataCount, long* chOffset);
   ErrorCode BfdAiStop();
   ErrorCode BfdAiRelease();
protected:
   friend class BDaqDevice;
   // internal used only
   BDaqAi(HANDLE aiHandle) : BDaqModule(aiHandle)
   {   }
   virtual ~BDaqAi()
   {   }
};
qui elle même appartient à BDaqModule :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
class BDaqModule
{
public: // Methods
#if defined(__BORLANDC__) || defined(_MSC_VER)
   __declspec(property(get = get_Handle)) HANDLE Handle;
#endif
   HANDLE get_Handle()
   {
      return m_moduleHandle;
   }
 
#if defined(__BORLANDC__) || defined(_MSC_VER)
   __declspec(property(get = get_Property)) BDaqProperty &Property;
#endif
   BDaqProperty & get_Property( )
   {
      return m_property;
   }
 
#if defined(__BORLANDC__) || defined(_MSC_VER)
   __declspec(property(get = get_Event)) BDaqEvent &Event;
#endif
   BDaqEvent & get_Event()
   {
      return m_event;
   }
 
protected:
   BDaqModule(HANDLE moduleHandle)
   {
      m_moduleHandle = moduleHandle;
      m_property.SetParent(this);
      m_event.SetParent(this);
   }
   virtual ~BDaqModule()
   {   }
   virtual void Release()
   {
      delete this;
   }
protected:
   friend class BDaqModuleManager;
   HANDLE       m_moduleHandle;
   BDaqProperty m_property;
   BDaqEvent    m_event;
};
Mais voilà les méthodes Property sont définis pour Borland et MSC_VER

Y-a-t-il une possibilité d'utiliser la méthode property depuis un compilo Gcc ou dois-je migrer ma solution vers VC10 express?

N'étant pas expert dans toutes ces relations inter compilateur, s'il manque des infos pour la bonne compréhension du problème dite le moi et je compléterai.

Merci à tous

Renaud