【发布时间】:2013-09-01 20:59:18
【问题描述】:
我必须用 VB6 调用 C DLL。
C 代码
short int decode(BOOL Mode, char* tete, char* adresse, char* status, char* nombre, char* datadecode);
我的 VB 代码:
Private Declare Function decode Lib "VBdecode.dll" ( _
ByVal Mode As Long, _
ByVal tete As String, _
ByVal adresse As String, _
ByVal status As String, _
ByVal nombre As String, _
ByVal datadecode As String) As Long
Dim retour_lire As Long
Dim buffer(4) As Byte
Dim vbcData as string
Dim i As Integer
Dim chdecode As string
retour_lire = Byte_read(True, "4", "00", buffer, "16", vbcData)
For i = 1 To 10
chdecode = vbcData(i)
Next
MsgBox chdecode
但我的 VB6 代码不起作用。
请提出任何想法、建议或更正。
请帮帮我,我指望你。
【问题讨论】:
-
VB 将 unicode 字符串作为 BSTR 传递;不是
char*。 -
VB需要字符串的大小,它没有终止\0的概念,BSTR里面有大小。
-
所以在函数声明中我必须通过 As BSTR 编辑 AS String ??