为什么会出现Access Violation ...? 实在是迷惑

bushbuck 2003-06-09 09:12:47
我用vc了一个 .dll,用vc调用已经成功了.
我想用delphi调用该.dll文件.编译成功了
就是在运行是出现 Access violation 也查了些网上的文章说是指针的问题
或是类型不匹配.但我就是查不出毛病.请各位高手指点小弟一二.

vc下定义的输出函数:
int TimeDelay(unsigned long n)

delphi 下的引用:
var
Form1: TForm1;
a : integer;
n : Cardinal;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
n:=13;
a:=TimeDelay(n);//就是这步出问题

...全文
47 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bushbuck 2003-06-09
  • 打赏
  • 举报
回复
我也知道
但是我就是查不出问题在那里

我要调用的函数只有以个参数 unsigned long n,我在delphi 下把它定义为Cardinal
因为他们都是32位的 无符号数,
还有就是 函数的返回值 int ,我在delphi下把它定义为integer

然后就没有参数传递了.

l_xiaofeng 2003-06-09
  • 打赏
  • 举报
回复
就是说你引用的时候出错!参数给的不对等等!
bushbuck 2003-06-09
  • 打赏
  • 举报
回复
请问如何才能正确引入dll
我如何知道它是否被引入

急.......
Linux2001 2003-06-09
  • 打赏
  • 举报
回复
说的是访问地址错误,你再检查一下代码
bushbuck 2003-06-09
  • 打赏
  • 举报
回复
“是不是没有正确的引入这一个dll中的函数啊”]

这句话什么意思?能不能说的具体一点
bushbuck 2003-06-09
  • 打赏
  • 举报
回复
我觉得是的
brallow 2003-06-09
  • 打赏
  • 举报
回复
对dll的引用正确?是不是没有正确的引入这一个dll中的函数啊?
bushbuck 2003-06-09
  • 打赏
  • 举报
回复
对不起刚才少贴了点东西
function TimeDelay(n : Cardinal):integer;stdcall;external 'TDelay2.dll';

5,392

社区成员

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

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