我在dll中定义的是double类型的,在vb中调用的时候对应的数据类型应该用什么呢?
我用了double好像不行,请教!调用方式没有问题,用int已经通过!

解决方案 »

  1.   

    long 是长整数,而double是双精度小数,怎么可能呢。
      

  2.   

    应该是用Double。Double是8字节,必须用byref传指针。因为函数传送的是它的地址(Long)。
      

  3.   

    那如果我的返回类型(c中)是double呢,vb对应应该用什么类型呢?
      

  4.   

    double __stdcall test(double a1, double a2);Public Declare Function mySum Lib "TestDll3.dll" Alias "test" (ByRef num1 As Double, ByRef num2 As Double) As Double但调用的时候报错 expression too complex
      

  5.   

    问题已经解决,我在c的代码里少了extern "c" __declspec(dllexport),
    诶,居然都不对,vb这边代码确实用double,但不用byref,byval就可以了。