Utiliser bibliothèque pour VC10 sous Gcc
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:
errorCode = ai->Property.Set( CFG_ScanChannelStart,startChannel );
la variable ai est de type BDaqAi ( entête si dessous )
Code:
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:
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