动态连接库中的函数,解释后出现问题,求救!!!

动态连接库中的函数,解释后出现问题,求救!!! Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiAPI/html/delphi_20061129092530151.html
我有个动态连接库,还有c的头文件,我把翻译成Delphi的时候出现了点问题,大家帮忙看看啊:  
  LONG   WINAPI   XPosition(ULONG   iIndex);    
  float   XReadOut(ULONG   iIndex);    
   
  这两个函数,C的头文件里面的,翻译成D的函数后如下:  
  function     XPosition(iIndex   :   Longword)   :   longint;stdcall;external   'CardDLL.dll';  
   
  function     XReadOut(iIndex   :   Longword)   :   Single;stdcall;external   'CardDLL.dll';    
   
  不知道这样翻译有没有问题?    
   
  因为我现在遇到这样的情况,凡是C中函数名前有WINAPI的,翻译成D的函数后都好用,凡是没有WINAPI的,都出现内存读取错误???

是调用惯例上的差异,你把不带WINAPI的调用惯例改成cdecl

function     XReadOut(iIndex   :   Longword)   :   Single;stdcall;external   'CardDLL.dll';    
  改为  
  function     XReadOut(iIndex   :   Longword)   :   Single;cdecl;external   'CardDLL.dll';    
   
  ......说明  
   
  cdecl:       c\c++缺省的参数传递方式        
  stdcall:   WinAPI的参数传递方式

DELPHI   HELP:  
   
  The   cdecl   convention   is   useful   when   you   call   functions   from   shared   libraries   written   in   C   or   C++,

刚才查了查,什么参数传递方式的问题,修改后就好了,谢谢!

转载于:https://www.cnblogs.com/delphi2007/archive/2008/11/27/1342587.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值