最近用vc6写了一个DLL(c风格函数接口),可以供在DELPHI6使用,但是vb却不行。想向大家请教一下,vb使用vc编写的DLL可以吗?需要注意些什么?谢谢!

解决方案 »

  1.   

    可以使用
    需要使用_stdcall将函数导出假设BCB中DLL如下:
    extern "C" __declspec(dllexport) long ReadPsd()
    {
        return 0;
    }
    DLL名称为"Project1.dll",Lib文件名为"Project1.lib"。extern "C" _stdcall(dllexport) long ReadPsd()
    {
        return 0;
    }
    VB只支持这种方式
      

  2.   

    to online :
    什么意思?
    是将__declspec(dllexport)变为_stdcall(dllexport)就可以了吗?
    vc6支持_stdcall(dllexport)吗?
      

  3.   

    这样就行了
    extern "C" _stdcall(dllexport) long ReadPsd()
    {
        return 0;
    }
    VB只支持这种方式
      

  4.   

    必须使用 _stdcal 调用约定。
      

  5.   

    __declspec(dllexport) 留着,再在后面加上一个 __stdcall 或 WINAPI 。
      

  6.   

    其实 WINAPI 也是被 define 成 __stdcall 的。   :)
      

  7.   

    VC 中默认的是 __cdecl,需要改为 __stdcall 才可以,还要注意函数修饰名,直接用 __stdcall 的话函数名会有所改变,最好在 def 文件里面重定义一下。
      

  8.   

    我一般都是写.def文件的。  :)