我用VC做了个DLL 其中有函数 char * Float_Hex(float fFloat) 目的是返回一个十六进制的数串 如“12D7831A”      因为DLL中不能使用CString 所以我的返回值是一个指针 char 型数组的首地址。。
 char strHex[]={0x31,0x32,0x44,0x37,0x38,0x31,0x41}想用VB调用此函数。。应该怎么声明 怎么接收返回值呢??多谢!!

解决方案 »

  1.   

    Pulic Declare Function Float_Hex Lib "YourDll.dll"(Byval fFloat as Single) As String
      

  2.   

    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
    declare function Float_hex(byval fFloat as single) as longdim lpBuf as long
    dim s as string * 8
    lpBuf=Float_hex(123.32423)
    copymemory byval s,byval lpBuf,8
    debug.print s
      

  3.   

    TO  supergreenbean(超级绿豆(MS MVP - VB) - 暑去冬来,该吃补药了……) 
     你的方法我试过了 但是结果一些乱码 我该在哪里处理一下呢??
      

  4.   

    1 必须标准调用:char * __stdcall Float_Hex(float fFloat) 2 声明:
    Public Declare Function Float_Hex(Byval fFloat As Single) As String3
    Dim strHex As String * 16strHex = Float_Hex(1234)不过,一般的调用规范是:
    int __stdcall Float_Hex(float fFloat, char * cHex)
    Public Declare Function Float_Hex(Byval fFloat As Single, cHex As String) As LongDim Ret As Long, strHex As String * 16Ret = Float_Hex(12345, strHex)