。。。关于VB调用Delphi写的DLL中pchar类型的问题。

kidnet 2010-06-18 03:18:14
有个Delphi写的DLL,其中函数的返回值是pchar

const DllFile='xxxx.DLL';
function ReadXXXXCard(): pchar; stdcall; external DllFile;

我在VB中调用:
Declare Function ReadxxxxCard Lib "xxxx.dll" () As 【返回值】

【返回值】这里怎么写呢?

VB中没有pchar类型。

我试过byte,integer,long。。。返回值都不相同。。

用string接,返回空字符串

我这里应该用什么接函数返回值?。。这里应该很多个值

...全文
225 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kidnet 2010-06-18
  • 打赏
  • 举报
回复
    Dim tmpResult As Long

Dim bytes(0 To 3) As Byte

tmpResult = Module1.ReadUserCard()

CopyMemory bytes(0), tmpResult, 4

'MsgBox tmpResult

Dim str As String

'str = ByteToString(bytes)

str = StrConv(bytes, vbUnicode)

Me.Text1.Text = str

--------------------------------
Public Function ByteToString(ByRef bytIn() As Byte) As String
Dim i As Long
Dim strRet As String
strRet = ""
For i = 0 To UBound(bytIn) - 1
strRet = strRet & Chr(bytIn(i))
Next
ByteToString = strRet
End Function


这里读出来,是乱码。。

用下面那个函数处理后也是乱码。。T_T
a1875566250 2010-06-18
  • 打赏
  • 举报
回复
同LS
lyserver 2010-06-18
  • 打赏
  • 举报
回复
返回值类型为long,表示字符串地址,然后使用lstrcpy、copymemory等API将字符串内容复制到byte数组里,最后使用strconv转换为string。

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧