我用VC写了个DLL函数,很简单:
LONG CALLBACK T(LONG l){
     return l;
}
编译成dll文件后,在VB中调用,
MsgBox T(100)
但是得到的返回值不是100,而是其他数字。
到底是什么问题?
请各位帮忙!

解决方案 »

  1.   

    为什么是callback,改成这样试试
    extern "C" __declspec(dllexport)  LONG  T(LONG l)
      

  2.   

    Declare Function T Lib “YourDLLName” (ByVal lValue As Integer) As Integer
      

  3.   

    VB 调用VC DLL要注意2点,一是调用约定,一定要是 _stdcall
    二 是 要在 VC 的.def文件在加声明
      

  4.   

    以上的条件都满足,只是从vb向dll中传参数时候就有问题,LONG PCSTR都一样,dll不能正确接收。
    是不是vb向dll传送参数的时候要转换,或者dll中要进行类型转换?