vc动态库的说明:
DLLEXPORT int WINAPI Application_Manager(
HANDLE hHandle,
USHORT Length_of_Cmd,
LPSTR Cmd,
LPSTR Res,
LPSTR ret);
vb调用定义说明:
Public Declare Function Application_Manager Lib "Tww_HD.dll" (ByVal dev As Long, ByVal lencmd As Integer, ByRef cmd As string, ByRef res As String, ByRef ret As String) As Integer程序调用后发出的数始终不是所要的:
例:cmd="BFFC"
我想要调用动态库后,库向外发出来的数仍是“BFFC”
而库中将字符串变成了ASC码“42 48 48 43”发出,我不知道该如何办,多谢!!!
DLLEXPORT int WINAPI Application_Manager(
HANDLE hHandle,
USHORT Length_of_Cmd,
LPSTR Cmd,
LPSTR Res,
LPSTR ret);
vb调用定义说明:
Public Declare Function Application_Manager Lib "Tww_HD.dll" (ByVal dev As Long, ByVal lencmd As Integer, ByRef cmd As string, ByRef res As String, ByRef ret As String) As Integer程序调用后发出的数始终不是所要的:
例:cmd="BFFC"
我想要调用动态库后,库向外发出来的数仍是“BFFC”
而库中将字符串变成了ASC码“42 48 48 43”发出,我不知道该如何办,多谢!!!
Public Declare Function Application_Manager _
Lib "Tww_HD.dll" (_
ByVal dev As Long, _
ByVal lencmd As Integer, _
ByVal cmd As string, _
ByVal res As String, _
ByVal ret As String) As Integer
VB中的字符串要以ByVal的方式传到API中.
Public Declare Function Application_Manager _
Lib "Tww_HD.dll" (_
ByVal dev As Long, _
ByVal lencmd As Integer, _
ByVal cmd As string, _
ByVal res As String, _
ByVal ret As String) As Long
Public Declare Function Application_Manager _
Lib "Tww_HD.dll" (_
ByVal dev As Long, _
ByVal lencmd As Integer, _
ByVal cmd As Long, _
ByVal res As Long, _
ByVal ret As Long) As Long
传递字符串用StrPtr()手动取得地址。注意VB是Unicode。