vb调用dll时遇到问题 dll给出的 函数为 _bool functionA(char* v1, int * v2) 调用的时候 采用了
Private Declare Function functionA Lib "dll.dll" (ByVal v1 As String, ByVal v2 As integer) as LongPrivate Declare Function functionA Lib "dll.dll" (ByRef v1 As Byte, ByVal v2 As integer ) As LongPrivate Declare Function functionA Lib "dll.dll" (ByRef v1 As String, ByVal v2 As integer) As Long结果都是说类型不匹配。有没有高人能详细的讲下 调用的时候如何把 指针参数 正确的 调用?最好给出结论前能自己试验下。
Private Declare Function functionA Lib "dll.dll" (ByVal v1 As String, ByVal v2 As integer) as LongPrivate Declare Function functionA Lib "dll.dll" (ByRef v1 As Byte, ByVal v2 As integer ) As LongPrivate Declare Function functionA Lib "dll.dll" (ByRef v1 As String, ByVal v2 As integer) As Long结果都是说类型不匹配。有没有高人能详细的讲下 调用的时候如何把 指针参数 正确的 调用?最好给出结论前能自己试验下。
把dll发上来
我帮你做
char* v1 在vb使用 byte 注意转换
in 在 vb使用 long
------------------------------
Private Declare Function functionA Lib "dll.dll" (ByVal v1 As String, ByRef v2 As Long ) As Long关于指针参数的调用,基本上都使用ByRef方式传递,但是Char类型是比较特殊的一种情况:char* pstr---> ByVal pstr As String
wchar* pstr--->ByRef pstr As String
LPSTR pstr--->ByVal pstr As String
第二个就直接把LONG型变量的地址传过去好了。
[email protected]
带调用函数说明
----------------
Private Declare Function functionA Lib "dll.dll" (ByRef v1 As Byte, ByRef v2 As Long ) As Long
多谢各位。