我用的是turbo pascal 7.0
调用asm 编写的obj,asm编写的格式是按c语言的 ,调用者平衡堆栈
这个函数怎么声明呢?
我这样
function  xxx( x: word ;var x:word;var x,x:Longint;
          ....): word; cdecl; external;            {$L xxxx.obj}
结果编译不能通过 去掉cdecl;就行了
如果是delphi 这样是可以编译的
大家帮帮忙吧 谢谢了

解决方案 »

  1.   

    pascal调用与C调用的传参顺序正好相反吧.
      

  2.   

    一个是堆栈的参数传递顺序(涉及到堆栈清除的责任问题)
    还有就是obj的格式问题,MS的obj喜欢用Coff格式,borland的obj格式则完全不同
      

  3.   

    一般是不能用的,如果是borland C++.C++Builider编译成的,Delphi可以用,VC++编成的,Delphi不能用