VC动态连接库的输出函数为:
extern "C" __declspec(dllexport) void SetWhichDB(int nDB);我在VB中是如下调用的:
...
Private Declare Function SetWhichDB Lib "SetDB.dll" (ByVal nDB As Integer) As Long
...我在按钮的Click事件中是如下调用的:
Private Sub Command12_Click(Index As Integer)
Dim nDB As Integer
nDB = 1
SetWhichDB nDB   // 此处错误
End Sub
大侠们 help????

解决方案 »

  1.   

    VC的输出参数short,VB中对应Integer
         ...    long,   ...  Long
      

  2.   

    错误显示如下:实时错误 '49'
    DLL调用约定错误.
      

  3.   

    把你的DLL中的导出函数放在.def文件中!
    用来防止编译器改变你的导出函数的名称如果用VC开发的DLL,由用VB开发出来的应用程序调用,最简单的方法就是把导出函数写在.def文件中,比如在.def文件中
    EXPORTS
       YourExportFun注:YourExportFun为你的导出函数的名称
        另外在你定义导出函数的时候最好加上,函数调用约定的修饰比如;
        extern "C" __declspec(dllexport) __stdcall void SetWhichDB(int nDB);祝你成功!
      

  4.   

    再问 霓裳羽衣 :
    在.def中的输出函数可以只有函数名称而不带参数吗?
      

  5.   

    EXPORTS
       YourExportFun                                 @2即可,.DEF文件中不需要函数参数