我最近用delphi 5.0编译了一个程序,在程序中调用了dll中的函数,dll函数是用VC++写的,该dll在被VC和VB程序调用时,都没有问题,一切正常,而在用delphi 调用时,编译也通过,但在点击delphi 的运行按钮时,却进入CPU的内核程序,处在如下代码之间:
ntdll.dbgbreakpoint:
77FA018C int 3
77FA018D ret
ntdll.dbguserbreakpoint:
我在程序中未设任何断点,该程序便以后的俄exe文件,运行没有任何问题,就是不能在delphi中运行,我的系统是win2000专业版,敬请高手指点,谢谢!

解决方案 »

  1.   

    太难了你试过用delphi 6.0编译过没有?到处可以下载
      

  2.   

    我没用delphi 6.0,我可以试一下,谢谢!
    我在win XP下用delphi 5.0 可以通过,不知什么原因?请大家在指导一下!
    谢谢!
      

  3.   

    看一看你的函数调用方式申明,不能用缺省的,那是PASCAL方式,从右向左压要用C方式,关键字我记不住,写一个STDCALL再用F1查看就知道了。我用DELPHI调VC的DLL从来没错过,传过很多复杂的数据,包括指针
      

  4.   

    我用delphi 7 编译了一下,在2000下仍然不能用,我调用的函数只有一个参数,不存在参数调用问题,编译也没问题,只是在delphi 环境中运行不起来,离开delphi 环境的exe文件可以运行没问题。
      

  5.   

    看看win2000中的system32少了啥,查查winxp的比较
      

  6.   

    是不是你的程序有问题呀?或者是你的Delphi5有问题,我经常在Delphi5.0和VC6.0之间互相调用,无论是VC调Delphi的DLL,还是Delphi调用VC的DLL都没有问题,不过要记住,就是函数声明时都加上stdcall比较好