我有一delphi函数,需要调用两个外部函数(vb所写),但运行到da:= h*16 +l时总是得不到想要的值既DA值。请各位检查一下,问题出在哪里?谢谢!

天空的云彩 2001-12-19 09:28:14
我有一delphi函数,需要调用两个外部函数(vb所写),但运行到da:= h*16 +l时总是得不到想要的值既DA值。请各位检查一下,问题出在哪里?谢谢!

VB中声明:
Private Declare Sub out_byte Lib "vbdll.dll" (ByVal port%, ByVal da%)//写一个byte
Private Declare Function in_byte Lib "vbdll.dll" (ByVal port%) As Integer//读一个byte

DELPHI中声明:
procedure out_byte(port,dat:integer);external 'vbdll.dll';
function in_byte(port:integer):integer;external 'vbdll.dll';

函数:
Function ad2118(channel:Integer):integer;
var h,l,da:integer;
begin
out_byte(baseadd, channel);
sleep(100);
out_byte(baseadd+1, 1);
sleep(500);
h:= in_byte(baseadd + 2); //高位
sleep(50);
l:= round(in_byte(baseadd+3)/16); //低位
da:= h*16 +l ;
ad2118:= da ;
End;
...全文
82 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
skt985 2002-01-14
  • 打赏
  • 举报
回复
36845关注! :)
王集鹄 2001-12-19
  • 打赏
  • 举报
回复
No.1
procedure out_byte(port,dat:Byte);external 'vbdll.dll';
function in_byte(port:Byte):integer;external 'vbdll.dll';

No.2
procedure out_byte(port,dat:Byte);stdcall;external 'vbdll.dll';
function in_byte(port:Byte):integer;stdcall;external 'vbdll.dll';

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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