VC 制作的dll,返回值为uchar,在VB中如何定义和得到正确结果

chuting1 2010-07-21 11:26:41
在VC中函数定义为
rdcard(int icDev,uchar * cardlx)

在VC的DEMO中,执行后,cardlx可直接得到诸如12345,yfd等字符串

在VB中定义
Declare Function rdcard Lib "rwcard.dll" (ByVal icDev As Long, ByRef cardlx As String) As Integer

DEMO中,
Dim ads As String
aa = rdcompany(514, ads)
程序执行即飞

而在VB中定义
Declare Function rdcard Lib "rwcard.dll" (ByVal icDev As Long, ByRef cardlx As byte) As Integer

DEMO中,
Dim aaa(50) As Byte
aa = rdcompany(514, aaa(0))
方可

这样的话,如果cardlx是个不定长的字符,要想得到就很麻烦,请问有什么办法解决吗
...全文
218 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chuting1 2010-07-22
  • 打赏
  • 举报
回复
UP一下
chenhui530 2010-07-21
  • 打赏
  • 举报
回复
cardlx 传strptr后得到的地址
chenhui530 2010-07-21
  • 打赏
  • 举报
回复
Declare Function rdcard Lib "rwcard.dll" (ByVal icDev As Long, ByVal cardlx As long) As Integer
chuting1 2010-07-21
  • 打赏
  • 举报
回复
最终我要得到cardlx的字符值,定义成long,那strptr(参数为strting)怎么用呢
chuting1 2010-07-21
  • 打赏
  • 举报
回复
ByVal cardlx As long ???
strptr ???
chenhui530 2010-07-21
  • 打赏
  • 举报
回复
你认真看我的声明

call rdcompany(512,strptr("1233"))
chuting1 2010-07-21
  • 打赏
  • 举报
回复
楼上两位的都不对啊
浅蓝马 2010-07-21
  • 打赏
  • 举报
回复

Declare Function rdcard Lib "rwcard.dll" (ByVal icDev As Long, ByRef cardlx As String) As Integer

Dim ads As String * 256
aa = rdcompany(514, ads)

7,785

社区成员

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

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