我用了VC写的一个动态库DLL,其中有一个函数返回值的类型是char*,
char* MyFunc();
用VC、Delphi、BCB写的Exe中可正确调用并显示正确。
但VB不支持指针,那我在VB中该如何声明,如何应用呢
我是这样做的
Public Declare Function MyFunc Lib "VC.dll" () As StringPrivate Sub Command5_Click()
MsgBox MyFunc
End Sub但是,对话框显示的是空字符串!!!
我对VB不大懂,请大家教教我!
char* MyFunc();
用VC、Delphi、BCB写的Exe中可正确调用并显示正确。
但VB不支持指针,那我在VB中该如何声明,如何应用呢
我是这样做的
Public Declare Function MyFunc Lib "VC.dll" () As StringPrivate Sub Command5_Click()
MsgBox MyFunc
End Sub但是,对话框显示的是空字符串!!!
我对VB不大懂,请大家教教我!
不过在atl里提供了智能数据类型,在vc中也可以用呀。
public Declare Function lstrlenA Lib "kernel32" (ByVal lpsz As Long) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)dim MyStr as string
dim cChars as long
cChars=lstrlenA(myFunc)
MyStr=string$(cChars,0)
CopyMemory Byval strPtr(mystr),byval myfunc,cchars
mystr=trim(strconv(mystr,vbunicode)
mystr就是你要的字符串了。