R
rovedream
Unregistered / Unconfirmed
GUEST, unregistred user!
为什么回调函数不能加sdcall调用约定,如:<br>TMyCallProc=function (x,yChar)Char;<br><br>function add(x,yChar)Char; stdcall; //此处加stdcall调用会出错<br>begin<br> result:=PChar(strpas(x)+strpas );<br>end;<br><br>function oper(x,yChar; pFunointer):string;<br>begin<br> Result:=StrPas(TMyCallProc(pFun)(x,y) );<br>end;<br>=====================================================<br>oper(Pchar('s1'),pchar('s2'),@add) //调用这条语句会出错,但去掉stdcall正常执行<br>add(pchar('s1'),pchar('s2')) //直接执行还是没有问题,不管加不加stdcall<br>因为要用dll封装一些通讯协议,用了大量回调函数,而且dll要被别的语言调用,各位富翁有什么解决的办法没有,不用stdcall行不行