我用了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不大懂,请大家教教我!

解决方案 »

  1.   

    是不是byte数组,没试过。
    不过在atl里提供了智能数据类型,在vc中也可以用呀。
      

  2.   

    Public Declare Function MyFunc Lib "VC.dll" () As Long
    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就是你要的字符串了。
      

  3.   

    同意 hc_z,要简单的话使用Byte数组。不过,最好在VC中使用BSTR。