这个封装在Dll内的C语言函数在delphi中应该如何调用呢?(100分)

  • 主题发起人 主题发起人 units
  • 开始时间 开始时间
U

units

Unregistered / Unconfirmed
GUEST, unregistred user!
c语言的函数原型<br>int WINAPI rf_initval (unsigned short icdev, unsigned char block, long value)<br>在delphi应该如何调用呢?(主要是如何把函数的参数转为delphi可以使用的参数)
 
该函数在Delphi中的声明应该是这样:<br> &nbsp;function rf_initval(icdev: Word; Block: Byte; Value: Integer):Integer; pascal;<br><br> &nbsp;注:原型中的“WINAPI”是VC++的宏,用来模拟已不再支持的PASCAL调用约定。<br><br> &nbsp;附MSDN中关于 WINAPI 的说明:<br> &nbsp;WINDOWS.H now supports the WINAPI macro, which translates to the appropriate <br>calling convention for the target. Use WINAPI where you previously used PASCAL <br>or __far __pascal.
 
感谢creation-zy老大,还有一个小问题就是函数原型中对参数value的说明如下:<br>value: 初始值,16 进制,低字节在前<br>是不是在delphi调用这个函数时value的参数不能直接输入,必须做转换才行呢?如果做转换应该如何做呢?请教
 
&gt;&gt;value: 初始值,16 进制<br> &nbsp;看不明白——一个简简单单的32bit整数参数,和“16进制”会有什么关系?——如果是<br>用字符串来表示数字的话,才可以说是基于XX进制的。<br><br>&gt;&gt;低字节在前<br> &nbsp;我都忘了这个“前”应该指哪里了... 如果需要交换高低位的话,在调用前利用Swap函数<br>进行字节顺序调换即可——多试验试验吧。:)
 
接受答案了.
 
后退
顶部