| 发表于:2007-01-06 16:55:209楼 得分:0 |
问题好像不是出在这里 keiy() delphi中是没有c/c++的位字段的(vb同理,所以它是用integer) 由于在c中pstate_now为指针,所以delphi中要这样定义 function getkhtstate(port:integer; var state:word):integer;stdcall; external 'mtudll.dll ' name 'getkhtstate '; 然后,将state分别用and和shr来得到各个状态的值 var state:word; i:integer; iftel,ifring,iferror,ifdtmf,dtmf,hd:integer; begin i:=getkhtstate(1,state); edit1.text:=inttostr(i); iftel:=state and 1; ifring:=(state shr 1) and 1; iferror:=(state shr 2) and 1; ifdtmf:=(state shr 3) and 1; dtmf:=(state shr 4) and $f; hd:=(state shr 8) and $ff; 试了 所有位都是0,因为是整型数,初始就是0,所以实际什么都没有返回 用他们给的vb来写的程序可以得到整数4098,二进制为1000000000010 就是ifring位为1 为什么用delphi就是得不到返回数呢 | | |
|