[:vb急救:],调用.dll中函数时,传递参数出错。

fybird2000 2003-07-26 11:36:07
xiangzi 说:
我在vb底下调用zlib.dll中的一个函数compress2
xiangzi 说:
时,需要传递一个int level给compress2
xiangzi 说:
可是,运行的时候每次都说接受的数据不对。ft.我用dll的debug状态跟踪也确实没有接受正确。
xiangzi 说:
你帮我看看?
xiangzi 说:
vb下的申明为:
Private Declare Function compress2 Lib "zlib.dll" (dest As Any, destLen As Any, src As Any, ByVal srcLen As Long, level As Any) As Long
xiangzi 说:
dll中的为:
ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen,
xiangzi 说:
xiangzi 说:
dll中的为:
ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen,
const Bytef *source, uLong sourceLen,
int level));
xiangzi 说:
使用的时候为:
Dim level As Integer
level = -1
result = compress2(TempBuffer(0) , BufferSize, TheBytes(0) , UBound(TheBytes) + 1, level)

...全文
64 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fybird2000 2003-07-26
  • 打赏
  • 举报
回复
在线等待
fybird2000 2003-07-26
  • 打赏
  • 举报
回复
开始怀疑是_cdecl和_stdcall的区别。
我用stdcall模式从新编译,结果还是不行,请教各位高手了。

~~~~~~~~~>_<~~~~~~~~~~
fybird2000 2003-07-26
  • 打赏
  • 举报
回复
问题解决了,多谢huangguanshu()
自己犯昏了。
to zyl910:
ulongf:unsigned long far
Bytef :unsigned char far
这些都是c里面自定义的类型
zyl910 2003-07-26
  • 打赏
  • 举报
回复
uLongf、Bytef是什么类型?
kyuwong 2003-07-26
  • 打赏
  • 举报
回复
Private Declare Function compress2 Lib "zlib.dll" (dest As Any, destLen As Any, src As Any, ByVal srcLen As Long, byval level As long) As Long

应该这样声明

1,486

社区成员

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

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