不知道,瞎试呗
把int 改成long或者short试一试

解决方案 »

  1.   

    可能是函数调用类型定义有错,是用PASCAL调用模式还是C调用模式,这两种模式传参数的顺序和返回时由谁恢复栈不一样。试试定义为:
    typedef long (_stdcall* pfunc)(char *,int);
      

  2.   

    就是函数调用类型不一致引起的。它的help里已明确说明是“stdcall”,而你在程序中没有说明,于是使用了缺省的“c”调用——一个被调者清堆栈,一个调用者清堆栈,类型错误,自然导致堆栈错误。
    将声明改为:
    typedef long _stdcall pfunc(char *, int);
    typedef int _stdcall pfunc1(int, char *);
    应该就可以了。
      

  3.   

    to xlfrd:
    哥们,谢谢了,你说的没错,能给我你的email吗,我的是[email protected],希望有机会向你请教
      

  4.   

    to azuo_lee:
       大侠可否告之小弟你的email,我是初学vc,希望能得到大侠的指点,我的email 是[email protected]