我是一名初学者,
在VC下用Wizard的Win32 Dynamic-Link Library创建了DLL,
在其中添加了自己的一个最简单的函数。
但在VB中声明后调用,但在调用中出现
“Run time error`49`”
“Bad DLL calling convention”MSDN中的解释是“DLL 的调用约定错误(错误 49)”但我传递的函数是C编写的,而调用则是VB
是参数类型不对吗?还是其他原因?在线等待......

解决方案 »

  1.   

    函数声明处,改
    void fun();
    void __stdcall fun();
    void __syscall fun();
    试试.
      

  2.   

    #define DLL_API extern "C" __declspec(dllexport)//如下格式声明你的函数
    DLL_API  void fun();
      

  3.   

    (returntype) __stdcall fun();
    这样声明是对的,而且已经可以通过了;但是按VC例子中的声明方式:WIN32_DLL_API fun();为什么不可以?
    #define WIN32_DLL_API __declspec(dllexport)还请高手解答一下?
      

  4.   

    TO:huyuhui123(胡枫) 
    #define DLL_API extern "C" __declspec(dllexport)//如下格式声明你的函数
    DLL_API  void fun();
    ---------------------------------------------------
    我按你说的方式改了一下,但还是出现同样的错误?
    请教一下为什么?谢谢