是不是压栈的问题。C的缺省压栈是cdecl,需要也在函数声明中指出。

解决方案 »

  1.   

    声明不对,delphi的 var n:Integer 在c++里面对应的是引用类型而不是指针类型,就是
    说VC的声明应该是
      char *start(int& n);
    n 为 int类型的引用,而不是 int* n另外楼上的那位说的问题也注意一下,虽然只有一个参数,但是C和Pascal在堆栈处理上还有其他
    的差别(除了参数压栈的区别),所以最好用stdcall,呵呵...(不知道我 “引用” 这个术语用的对不对,呵呵,好久没有用C++了啊)
      

  2.   

    声明我觉得没声明问题,Delphi确实把int *n看成var n:Integer。这个不矛盾。
    这样声明:
    function start(var n:Integer):Pchar;cdecl;external'动态连接库名';
    我觉得最好你VC的函数声明成stdcall,这样调用更好些。
      

  3.   

    非常感谢这位叫chechy的朋友,我成功了!