VC dll 导出函数中的引用参数VB中应如何处理?

testpwd 2010-05-31 04:14:23
VC dll中有一个导出函数如下:、

HRESULT func(DOUBLE & rate)

我在VB 6.0中声明如下:

private Function func Lib "example.dll" (ByRef rate as Double) as Long


调用的时候,报错:类型不匹配,请问?
...全文
101 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
testpwd 2010-06-01
  • 打赏
  • 举报
回复
我试了heng_s兄的方法,它报错:说:ByVal rate() as Byte 数组参数必须用ByRef
testpwd 2010-06-01
  • 打赏
  • 举报
回复
难道VB 6.0的Double和VC 6.0里面的DOUBLE不一样吗?
testpwd 2010-06-01
  • 打赏
  • 举报
回复
我刚才把VC中的函数改成了下面,不用引用参数,直接返回Double类型

Double __stdcall func()
{
Double d;
...
return d;
}

然后VB中也改成:

Private Declare Function func Lib "example.dll" () As Double

Double d = func();

结果还是报“类型不匹配”,??
oo渣渣oo 2010-06-01
  • 打赏
  • 举报
回复
调用的时候记得先ReDim rate(7),不然会报错
oo渣渣oo 2010-06-01
  • 打赏
  • 举报
回复
先这样试试看能不能取到返回的值:

private Function func Lib "example.dll" (ByVal rate() as Byte) as Long
testpwd 2010-06-01
  • 打赏
  • 举报
回复
自己顶一下,请牛人指导!
testpwd 2010-05-31
  • 打赏
  • 举报
回复
调用时如下:

Dim rate as Double

result = func(rate)
testpwd 2010-05-31
  • 打赏
  • 举报
回复
是不是VC++中的DOUBLE和VB 6.0中的DOUBLE不一样呢?

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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