我用VC写了一个DLL函数中有一个函数的参数时int的输入型,但当Delphi调用这个函数时把这个值付为1,但VC中这个参数确实很大的一个数?为什么?

解决方案 »

  1.   

    两种工具对int型的理解可能不一致。可以考虑用variant类型之类的东西。
      

  2.   

    这是各厂商的编译器不兼容的原因。但是,可以让dll使用标准c的方式编译,这样,当dephi也使用标准c方式去使用dll时,就可以成功。
    标准方式是:
    在定义dll导出接口时,使用这种方式:
    extern "C"  __stdcall int function( int ntest );
      

  3.   

    因为他们对参数的理解规则相反,可以把VC写了一个DLL函数改为PASCAL规则,这样在任何原种调用都没问题。最简单的方法是声明为int WINAPI Test(int n)类似的函数,然后把函数名“Test”加到*.def文件中去就可以了!