求人帮忙看一下DLL的调用问题

云孤天 2005-07-22 04:59:42
有一个动态库,原来是用VB调用的,声明如下
Public Declare Function JagRead Lib "jagxapi.dll" (ByVal DataPath As String, ByVal BufferLen As Integer, Buffer As Any, ReturnLen As Integer) As Integer

其中VB在调用这个函数时,Any这个类型是在VB里用了一个Type
Type JAG_STRING_40
Data As String * 40
End Type



调用函数后取到的数据在Buffer.Data里面,ReturnLen的数据也是需要传出来的。

现在我想用Delphi调用这个函数,请问怎么定义参数才好?

分不够可以再开贴,只求人帮忙解决一下,万分感谢!
...全文
107 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
云孤天 2005-07-25
  • 打赏
  • 举报
回复
解决了,谢谢大家支持。。。

Any = arrar [1..40] of char;

就可以了。呵呵。。一时糊涂忘记了。
云孤天 2005-07-22
  • 打赏
  • 举报
回复
我开始也是这样想的,也做了,但是没有效果。。现在不知道怎么办才好了
亮剑_ 2005-07-22
  • 打赏
  • 举报
回复
VB不太熟,猜一下吧

Type JAG_STRING_40
Data As String * 40
End Type
是不是一个自定义类型,长度为40的字符串数组。就是Any是个字符串数组,Delphi里这样声明这个数组类型:
Any = arrar [1..40] of string;

主要还是要试一下,实践检验真理
云孤天 2005-07-22
  • 打赏
  • 举报
回复
还有。any在delphi里没有这个类型呀
云孤天 2005-07-22
  • 打赏
  • 举报
回复
谢谢楼上的支持,那照你这样定义函数,我用什么变量放入buffer这个参数里?
xixuemao 2005-07-22
  • 打赏
  • 举报
回复
function jagread(datapath: string; bufferlen: integer; buffer: any; returnlen: integer):integer; external 'jagxapi.dll' name 'jagread';
云孤天 2005-07-22
  • 打赏
  • 举报
回复
自己顶一下先

1,183

社区成员

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

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