高分求解!!!(100分)

lingice 2001-10-09 09:10:02
各位大虾,
最近我用Delphi做一个接口程序,在程序中我要调用一个用VC++编写的DLL文件,可是
我在程序中调用任何一个DLL里的函数事都出现error对话框,其中一个里面的详细内容如下:
Project IFace.exe raised exception class EAccessViolation With Message'Access
violation at address 1000236F in module'MhsAPI.dll'.Write of address 004019D2'.
Process stopped.Use Step or Run to continue.
调用其他函数时报出的error对话框的内容差不多,就是在地址上有所不同。我的开发环境是
Delphi 5 + Windows 2000 sp2。我对照那个DLL文件的头文件写了一个Delphi格式的声明,我
用“静态”方法来调用DLL文件里的函数。
请问出现这种错误是因为什么原因?有什么解决方法?

谢谢!
...全文
69 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lingice(编程浪子)你还想不想混了!
  • 打赏
  • 举报
回复
lingice 2001-12-03
我已经解决了。谢谢!
  • 打赏
  • 举报
回复
chechy 2001-10-10
你不妨把C和Delphi的声明都贴出来看看。
  • 打赏
  • 举报
回复
lingice 2001-10-10
我加上了,可是错误依旧!!!
Help Me!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • 打赏
  • 举报
回复
chechy 2001-10-09
那么Delphi的函数,也不许加入cdcel的声明。
比如
function HelloWorld: Integer; cdcel;
  • 打赏
  • 举报
回复
lingice 2001-10-09
我使用的是cdcel
  • 打赏
  • 举报
回复
chechy 2001-10-09
这个问题的出现,八成都是你没有正确声明函数参数的压栈方式。到底是stdcall还是cdcel。你不妨把C和Delphi的声明都贴出来看看。
  • 打赏
  • 举报
回复
相关推荐
发帖
Delphi

5124

社区成员

Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
帖子事件
创建了帖子
2001-10-09 09:10
社区公告
暂无公告