我用bcb开发,厂家给了个dll,我用def导出,如下
    ??0CSgipapi@@QAE@XZ            @1   ; ??0CSgipapi@@QAE@XZ
    ??4CSgipapi@@QAEAAV0@ABV0@@Z   @2   ; ??4CSgipapi@@QAEAAV0@ABV0@@Z
    ?SGIP_Connect@@YAHPADF00@Z     @3   ; ?SGIP_Connect@@YAHPADF00@Z
    ?SGIP_Disconnect@@YAHH@Z       @4   ; ?SGIP_Disconnect@@YAHH@Z
    ?SGIP_Get_MO@@YAHHPAPAX@Z      @5   ; ?SGIP_Get_MO@@YAHHPAPAX@Z
我用bcb不能正确导入,有人说这只能用vc开发对吗?

解决方案 »

  1.   

    http://www.csdn.net/Develop/read_article.asp?id=15689
      

  2.   

    主  题:  如何使用 Def 文件静态连接 VC 的 Dll? 
    作  者:  Behard (想象休息中......这个星期去踢球)  
    等  级:    
    信 誉 值:  100 
    所属论坛:  VC/MFC 进程/线程/DLL 
    问题点数:  100 
    回复次数:  6 
    发表时间:  2003-3-6 10:10:38 
       
    Borland C++ Builder Load VC 的 Dll 时:
    使用动态连接没有问题,静态只有 __stdcall 方式能成功
    而 __fastcall 和 __cdecl 方式不成功,我看到有书说是可以使用 Def 文件来导入(也就是使用别名)
    但是没有例子,谁有这些方面的例子
    VC 方面的例子也可以
    我的 Email:Behard#163.net
      
    回复人: lwg7603(刑满释放人员) ( ) 信誉:100  2003-3-6 10:13:52  得分:0 
     
    没用,__stdcall才是正常的方式~
     
    回复人: Behard(想象休息中......这个星期去踢球) ( ) 信誉:100  2003-3-6 10:16:03  得分:0 但是我使用动态连接没有问题哟
     
    回复人: force_eagle(战鹰) ( ) 信誉:100  2003-3-7 10:04:31  得分:0  
      
    使用BORLAND的impdef和implib可以作到啊!!!
    http://www.csdn.net/Develop/read_article.asp?id=15689
    回复人: force_eagle(战鹰) ( ) 信誉:100  2003-03-21 10:00:00  得分:0 
     
    如果是FASTCALLL的话
    先使用IMPDEF 从DLL中导出DEF文件,然后手工修改,将fastcall后面的@nn去掉,改为符合CB调用的@functionname形式
    如果是cdecl的
    在DEF中将函数名称前加一"_",改为符合CB调用的_function形式两函数
    extern "C" __declspec(dllexport) int __cdecl GetCStyle(int nIndex)
    {
    nIndex = 1;
    return nIndex;
    }
    extern "C" __declspec(dllexport) int __stdcall GetStdCallStyle(int nIndex)
    {
    nIndex = 2;
    return nIndex ;
    }
    VC编译
    CL /LD xx.cpp
    如下
    LIBRARY     DLLEXPORTSTYLE.DLLEXPORTS
        @GetFastCalStyle@4         @1   ; GetFastCalStyle:: (huge, rtti)
        GetCStyle                  @2   ; GetCStyle改为
    LIBRARY     DLLEXPORTSTYLE.DLLEXPORTS
        @GetFastCalStyle            @1   ; GetFastCalStyle:: (huge, rtti)
        _GetCStyle                  @2   ; GetCStyle
      

  3.   

    我现在不是做dll,是用别人的
     不知道现在这样能不能在bcb里用?
      

  4.   

    请详细点小弟还是不是太明白,在线wait.............................................