dll中函数传递参数类型为real时出错。(50分)

  • 主题发起人 主题发起人 heart_one
  • 开始时间 开始时间
H

heart_one

Unregistered / Unconfirmed
GUEST, unregistred user!
在dll中到一个function,传递参数中有一个类型为real或double型(其它类型没问题),为什么外部调用的时候会出现"privileged instruction"的错误,编译是没问题的,函数中不写任何程序也一样。哪位达人知道原因,请告知,先行谢过了!
 
代码?
是不是忘了加stdcall关键字?
 
function test(a:Double;B:integer):real
stdcall;
代码为空也出错。
 
发现是同时定义了不同类型a和B产生的。double和integer不能同时传递?将B的类型也改为double就可以了。
 
把Real改为Double试一下
在我的记忆中Real应该是6个字节的,是Delphi为了向前兼容而存在的,与其他语言可能不兼容
而Double是IEEE的标准类型,是8个字节的
替换一下试试?
:)
 
多谢给思路。
 
后退
顶部