Thans hebben wij een pakket aangeschaft van Sumihiro. Het betreft een Call Catcher.
Er zit een API (dll) bij die functionaliteit tussen Client en server kan verschaffen.
nu zit ik met een klein probleem.
Ik krijg met geen mogelijkheid een functie aangeroepen vanuit Visual Basic 6 (cpp is niet mijn ding, java kan niet gezien de al draaiende applicatie, delphi heeft me werk niet).
Ik wil graag een activeX component maken.
Nu is het probleem, hoe roep ik de functies uit de dll aan in visual basic.
de volgende .h file is bijgeleverd.
en deze code gebruik ik
ik krijg OF "Bad dll calling convention" (dat schijnt een run-time bug te zijn)
of de functie wordt wel aangeroepen maar hij doet niets. (geen error, maar ook geen activiteit)
iemand enig idee hoe dit werkend te maken valt? want ik kan de fout niet vinden.
Er zit een API (dll) bij die functionaliteit tussen Client en server kan verschaffen.
nu zit ik met een klein probleem.
Ik krijg met geen mogelijkheid een functie aangeroepen vanuit Visual Basic 6 (cpp is niet mijn ding, java kan niet gezien de al draaiende applicatie, delphi heeft me werk niet).
Ik wil graag een activeX component maken.
Nu is het probleem, hoe roep ik de functies uit de dll aan in visual basic.
de volgende .h file is bijgeleverd.
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
| //---------------------------------------------------------------------------
#ifndef uiH
#define uiH
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __DLL__
# define DLL_EXP __declspec(dllexport)
#else
# define DLL_EXP __declspec(dllimport)
#endif
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_EVENT(
int *As_id,
int *At_id,
char *AMsg1,
int *AMsg1Len,
char *AMsg2,
int *AMsg2Len
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_CONNECT(
int As_id,
int At_id,
char *AUser,
char *APassword,
char *AHost,
char *AService,
int ATCP,
int AUDP,
int AReserved
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_DISCONNECT(
int As_id, int At_id
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_POLL(
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_ARTICLERANGE(
int As_id, int At_id
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_GET_ARTICLEHEADER(
int As_id, int At_id, int ia_id
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_GET_ARTICLEHEADERS(
int As_id, int At_id, int iMina_id, int iMaxa_id
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_MOD_ARTICLEHEADER(
int As_id, int At_id, int Aa_id, char *AData, int ALenData
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_DEL_ARTICLE(
int As_id, int At_id, int Amina_id, int Amaxa_id
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_XFER_DOWNLOAD(
int As_id, int At_id, char *ARemoteFile, int AOffset
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_XFER_UPLOAD(
int As_id, int At_id, char *ARemoteFile
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_XFER(
int As_id, int At_id, int ABytesToDownload, char *AUploadDAta
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_XFER_END(
int As_id, int At_id
);
//---------------------------------------------------------------------------
DLL_EXP int __stdcall CC_DECODE_HEADER(
int As_id, char *AFileName, char *AHeader, int &AHeaderLen
);
//---------------------------------------------------------------------------
DLL_EXP int __stdcall CC_UPDATE_HEADER(
int As_id, char *AFileName, char *AHeader, int AHeaderLen
);
//---------------------------------------------------------------------------
DLL_EXP int __stdcall CC_DECODE_AUXFRAME(
int As_id, char *AFilename, int AFrameNo,
char *ADataOutPCMdata, int &ADataOutLen
);
//---------------------------------------------------------------------------
DLL_EXP int __stdcall CC_HEADER_GET_ITEM(
char *ACompleteMsg, char *AItemName, char *AValue
);
//---------------------------------------------------------------------------
DLL_EXP int __stdcall CC_HEADER_SET_ITEM(
char *ACompleteMsg, char *AItemName, char *AValue
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_STREAM_INIT(
int As_id, int At_id, int APort
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_STREAM_START(
int As_id, int At_id, int AHistory
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_STREAM_STOP(
int As_id, int At_id
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_STREAM_CLOSE(
int As_id, int At_id
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_PING(
int As_id, int At_id
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_GET_DATETIME(
int As_id, int At_id
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_DISKSIZE(
int As_id, int At_id, char ADrive
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_DISKFREE(
int As_id, int At_id, char ADrive
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_PQL_SUBMIT(
int As_id, int At_id, char *ASubmission
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_SIM_EVENT(
int As_id, int At_id, int Ap_id, int AEvent, char *AExtra, int AExtraLen
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_ENABLE_EVENTS(
int As_id, int At_id, int Aport, int AActivate
);
//---------------------------------------------------------------------------
DLL_EXP void __stdcall CC_REBUILD_DATABASE(
int As_id, int At_id
);
//---------------------------------------------------------------------------
#ifdef __cplusplus
}
#endif
#endif |
en deze code gebruik ik
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
47
| Option Explicit
'// global variable
Dim As_id As Long
Dim At_id As Long
Dim AUser() As Byte
Dim APassword() As Byte
Dim AHost() As Byte
Dim AService() As Byte
Dim Amsg1() As Byte
Dim Amsg2() As Byte
Dim AMsg1Len As Long
Dim AMsg2Len As Long
'// DLL Imports
Private Declare Function CC_CONNECT _
Lib "c:\Api\cc2k_dll.dll" ( _
ByVal As_id As Long, _
ByVal At_id As Long, _
ByRef AUser() As Byte, _
ByRef APassword() As Byte, _
ByRef AHost() As Byte, _
ByRef AService() As Byte, _
ByVal ATCP As Long, _
ByVal AUDP As Long, _
ByVal AReserved As Long _
)
Private Declare Function CC_DISCONNECT _
Lib "c:\Api\cc2k_dll.dll" ( _
ByVal As_id As Long, _
ByVal At_id As Long _
)
Private Declare Function CC_PING _
Lib "c:\Api\cc2k_dll.dll" ( _
ByVal As_id As Long, _
ByVal At_id As Long _
)
Private Declare Function CC_POLL _
Lib "c:\Api\cc2k_dll.dll" () |
ik krijg OF "Bad dll calling convention" (dat schijnt een run-time bug te zijn)
of de functie wordt wel aangeroepen maar hij doet niets. (geen error, maar ook geen activiteit)
iemand enig idee hoe dit werkend te maken valt? want ik kan de fout niet vinden.