VB调用的错误如下:
Run-time eror '49'
Bad DLL Calling convention1.首先,在VC程序中我肯定是使用的是__stdcall,并在DEF文件中导出了调用函数.
2.虽然在vb中会产生上述错误,但是在vb中的被调用DLL函数前加上一句 On Error Resume Next就能正常运行,一点问题都没有.问题: 为什么会出现这个错误?为什么加上On Error Resumen Next后就能正常运行??

解决方案 »

  1.   

    可能在你的程序中,调用 DLL 函数失败并不影响程序运行。请贴出函数原型以及 VB 中的声明和调用代码。
      

  2.   

    //VB
    Public Declare Function _Backup Lib "Backup.dll" ()
    Public Declare Function _Restore Lib "Backup.dll" ()Private Sub Command1_Click()
       _Backup
    End Sub
    Private Sub Command2_Click()
       _Restore
    End Sub///////////////////////////////////////////////////////////////////
    //VC
    extern "C" 
    {
       _declspec(dllexports) void __stdcall _Backup();
       _declspec(dllexports) void __stdcall _Restore();
    }void __stdcall _Backup()
    {
       MessageBox(NULL,"Backup","1",MB_OK);
    }
    void __stdcall _Restore()
    {
       MessageBox(NULL,"Restore","1",MB_OK);
    }//DEF
    LIBRARY Backup
    EXPORTS
    _Backup
    _Restore/////////////////////////////////////////////////////////////////////
    //我的DLL都是按照上面这种方式写的,都会有'49'的错误!望解答
      

  3.   

    try:
    Public Declare sub _Backup Lib "Backup.dll" ()
    Public Declare sub _Restore Lib "Backup.dll" ()
      

  4.   

    rainstormmaster(暴风雨 v2.0) ( ) 信誉:238 
    使用Sub之后,没有错误提示了.
    不想知道为什么会这样呢? Sub和Function调用有什么差异~~
    非常感谢!
      

  5.   

    //不想知道为什么会这样呢? Sub和Function调用有什么差异~~sub没有返回值