Alors voila un petit up avec la publication d'une partie de mon code :

voici le .cpp de la classe qui pose probleme :

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
 
#pragma hdrstop
#include <vcl.h>
#include "RessourceCodeurs.h"
#include "CodeurInc.h"
#include "CarteTC3216.h"
#include "Console_Codeur2.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------
// Déclaration des fonctions de la DLL "TC3216pci.dll"
// prédéfinis dans le fichier a en-tête "RessourceCodeurs.h"
//************************************************************
TC3216OPEN TC3216_Open;                 // Ouverture et fermeture du driver
TC3216CLOSE TC3216_Close;
TC3216INPUT TC3216_Input;               // Pilotage générale des entrés et
TC3216OUTPUT TC3216_Output;             // Sortie de la carte TC3216
TC3216DWINPUT TC3216_DWINPUT;
TC3216DWOUTPUT TC3216_DWOUTPUT;
BITINPUT TC3216_Bit_Input;              // Pilotage Bit à Bit
BITOUTPUT TC3216_Bit_Output;
BITREADBACK TC3216_Bit_ReadBack;
INITCODEURS TC3216_Init_Codeurs;        // Pilotage relatif aux entrés codeurs
CODEURREAD TC3216_Codeur_Read;
CODEURRESET TC3216_Codeur_Reset;
CODEURPRESET TC3216_Codeur_Preset;
//************************************************************
extern HINSTANCE hDLLTC3216pci;
//************************************************************
//Constructeur & Destructeur
//************************************************************
TTC3216::TTC3216()
{};
TTC3216::~TTC3216()
{};
TTC3216::TTC3216(int CarteId,int Mode1,int Mode2,int Mode3)
{this->Carte_Id=CarteId;
codeur1=new TCodeur(this->Carte_Id,Mode1);
codeur2=new TCodeur(this->Carte_Id,Mode2);
codeur3=new TCodeur(this->Carte_Id,Mode3);
};
//************************************************************
// Primitives aux méthodes
//************************************************************
int TTC3216::TC3216_SetCarteId(int CarteIdSet)
{
int Erreur=0;
this->Carte_Id=CarteIdSet;
Erreur=1;
return Erreur;
};
 
int TTC3216::TC3216_GetCarteId(void)
{
return this->Carte_Id;
};
 
int TTC3216::TC3216_IniDLL(void)
{
hDLLTC3216pci=LoadLibrary("TC3216pci.dll");
return 1;
};
 
int TTC3216::TC3216_IniCarte(void)
{
int TestHinst=0;
while (TestHinst==0)
        {
        if(hDLLTC3216pci)
                {
                TC3216_Open=(TC3216OPEN) GetProcAddress(hDLLTC3216pci,"TC3216_Open");
                TC3216_Close=(TC3216CLOSE) GetProcAddress(hDLLTC3216pci,"TC3216_Close");
                TC3216_Input=(TC3216INPUT) GetProcAddress(hDLLTC3216pci,"TC3216_Input");
                TC3216_Output=(TC3216OUTPUT) GetProcAddress(hDLLTC3216pci,"TC3216_Output");
                TC3216_DWINPUT=(TC3216DWINPUT) GetProcAddress(hDLLTC3216pci,"TC3216_DWInput");
                TC3216_DWOUTPUT=(TC3216DWOUTPUT) GetProcAddress(hDLLTC3216pci,"TC3216_DWOutput");
                TC3216_Bit_Input=(BITINPUT) GetProcAddress(hDLLTC3216pci,"TC3216_BitInput");
                TC3216_Bit_Output=(BITOUTPUT) GetProcAddress(hDLLTC3216pci,"TC3216_BitOutput");
                TC3216_Bit_ReadBack=(BITREADBACK) GetProcAddress(hDLLTC3216pci,"TC3216_BitReadBack");
                TC3216_Init_Codeurs=(INITCODEURS) GetProcAddress(hDLLTC3216pci,"TC3216_InitCodeurs");
                TC3216_Codeur_Read=(CODEURREAD) GetProcAddress(hDLLTC3216pci,"TC3216_CodeurRead");
                TC3216_Codeur_Reset=(CODEURRESET) GetProcAddress(hDLLTC3216pci,"TC3216_CodeurReset");
                TC3216_Codeur_Preset=(CODEURPRESET) GetProcAddress(hDLLTC3216pci,"TC3216_CodeurPreset");
                TestHinst=1;
                }
 
        }
TC3216_Open(this->Carte_Id,0);
TC3216_Init_Codeurs(this->Carte_Id,codeur1->Codeur_GetMode(),codeur2->Codeur_GetMode(),codeur3->Codeur_GetMode());
return 1;
};                /* probleme lors de la sortie du code */
 
int TTC3216::TC3216_ReadOne(int Voie,long *ValCod1)
{
TC3216_Codeur_Read(this->Carte_Id,Voie,ValCod1);
return 1;
};
 
int TTC3216::TC3216_ReadAll(long *ValCod1,long *ValCod2,long *ValCod3)
{
TC3216_Codeur_Read(this->Carte_Id,0,ValCod1);
TC3216_Codeur_Read(this->Carte_Id,1,ValCod2);
TC3216_Codeur_Read(this->Carte_Id,2,ValCod3);
return 1;
};
 
int TTC3216::TC3216_ResetOne(int Voie)
{
TC3216_Codeur_Reset(this->Carte_Id,Voie);
return 1;
};
 
int TTC3216::TC3216_ResetAll(void)
{
TC3216_Codeur_Reset(this->Carte_Id,0);
TC3216_Codeur_Reset(this->Carte_Id,1);
TC3216_Codeur_Reset(this->Carte_Id,2);
return 1;
};
 
int TTC3216::TC3216_PresetOne(int Voie,long ValCod1)
{
TC3216_Codeur_Preset(this->Carte_Id,Voie,ValCod1);
return 1;
};
 
int TTC3216::TC3216_PresetAll(long ValCod1,long ValCod2,long ValCod3)
{
TC3216_Codeur_Preset(this->Carte_Id,0,ValCod1);
TC3216_Codeur_Preset(this->Carte_Id,1,ValCod2);
TC3216_Codeur_Preset(this->Carte_Id,2,ValCod3);
return 1;
};
 
int TTC3216::TC3216_Close(void)
{
TC3216_Close();
return 1;
};
voici le .h associé :

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
 
//---------------------------------------------------------------------------
#ifndef CarteTC3216H
#define CarteTC3216H
//---------------------------------------------------------------------------
 
class TTC3216
{
private:
        int Carte_Id;           // Identifiant de la carte TC3216
        TCodeur *codeur1;       // Codeur branché sur la voie 0
        TCodeur *codeur2;       // Codeur branché sur la voie 1
        TCodeur *codeur3;       // Codeur branché sur la voie 2
public:
        TTC3216();              // Constructeur par défaut
        ~TTC3216();             // Déstructeur par défaut
                                // Constructeur paramètré
        TTC3216(int CarteId,int Mode1,int Mode2,int Mode3);
 
//************************************************************
        int TC3216_SetCarteId(int CarteIdSet);
//************************************************************
        int TC3216_GetCarteId(void);
//************************************************************
        int TC3216_IniDLL(void);
//************************************************************
        int TC3216_IniCarte(void);
//************************************************************
        int TC3216_Close(void);
//************************************************************
        int TC3216_ReadOne(int Voie,long *ValCod1);
//************************************************************
        int TC3216_ReadAll(long *ValCod1,long *ValCod2,long *ValCod3);
//************************************************************
        int TC3216_ResetOne(int Voie);
//************************************************************
        int TC3216_ResetAll();
//************************************************************
        int TC3216_PresetOne(int Voie,long ValCod1);
//************************************************************
        int TC3216_PresetAll(long ValCod1,long ValCod2,long ValCod3);
//************************************************************
};
#endif
et voici le RessourceCodeurs.h :

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
 
//************************************************************
// RESSOURCE CODEURS
//************************************************************
typedef long (CALLBACK *TC3216OPEN) (long NCarte,long nAdresse);
 
typedef void (CALLBACK *TC3216CLOSE) (long NCarte);
 
typedef long (CALLBACK *TC3216INPUT) (long NCarte, long Port, long* Data);
 
typedef long (CALLBACK *TC3216OUTPUT) (long NCarte,long Port,long Data);
 
typedef long (CALLBACK *TC3216DWINPUT) (long NCarte, long* Data);
 
typedef long (CALLBACK *TC3216DWOUTPUT) (long NCarte, long Data);
 
typedef long (CALLBACK *BITINPUT) (long NCarte, long Entree);
 
typedef long (CALLBACK *BITOUTPUT) (long NCarte, long Sortie, long Etat);
 
typedef long (CALLBACK *BITREADBACK) (long NCarte, long Sortie);
 
typedef void (CALLBACK *INITCODEURS) (long NCarte, long Mode0, long Mode1, long Mode2);
 
typedef long (CALLBACK *CODEURREAD) (long NCarte, long voie, long* Data);
 
typedef long (CALLBACK *CODEURRESET) (long NCarte, long Voie);
 
typedef void (CALLBACK *CODEURPRESET) (long NCarte, long Voie, long Data);
Le probleme c'est que lors de l'appel par le programme principal de TC3216_IniCarte();

il me renvoie un message d'erreur évoqué précédement.

je suis vraiment bloqué.