CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

在VC下可以调用BCB的静态链接库吗?

楼主matrix2000(我要学InfoPath)2001-05-03 11:04:00 在 C++ Builder / 基础类 提问

如果可以,请您详细的说一下。  
  谢谢 问题点数:100、回复次数:23Top

1 楼xycleo()虚竹和尚()回复于 2001-05-03 11:26:00 得分 30

可以阿!!!  
   
  静态调用时:Microsoft所使用的格式是COFF格式的LIB档,而Borland所使用的格式是OMF格式的LIB档。若是你的LIB档是要给Visual   C++   链结用的,那就要使用它所附的IMPLIB.EXE,在使用时不可不察。因此我们可用以下指令产生DLLSAMP.LIB档。    
   
  IMPLIB   DLLSAMP.LIB   DLLSAMP.DLL  
   
   
  Top

2 楼matrix2000(我要学InfoPath)回复于 2001-05-03 11:48:00 得分 0

你的意思是说用BCB做一个动态的连接库先。然后使用IMPLIB导出一个VC能用的静态LIB吗?  
  BTW:如果我在build这个dll时就带进所有的dll和BPL,那么以后在VC里Build完后是不是可以不用BCB的东东了吧。Top

3 楼xycleo()虚竹和尚()回复于 2001-05-03 12:02:00 得分 0

你说的好复杂!!没试过!!Top

4 楼wizardmao(天涯)回复于 2001-05-03 12:08:00 得分 5

关注Top

5 楼wizardmao(天涯)回复于 2001-05-03 12:11:00 得分 0

:)Top

6 楼Wingsun(孙春阳)回复于 2001-05-03 15:18:00 得分 20

是啊,当然拉,不过有一点就是,你要保证你的DLL不需要BCB的任何bpl的支持,也就是静态完全连接.  
  还有就是你的lib文件格式一定是要VC的格式.就向他们说的那样.Top

7 楼matrix2000(我要学InfoPath)回复于 2001-05-03 18:57:00 得分 0

不行呀,我用BCB生成了一个dll,   再implib,结果VC显示  
  d:\bcb\bcb4\pro.lib   :   fatal   error   LNK1136:   invalid   or   corrupt   file  
  unit.cpp  
  //---------------------------------------------------------------------------  
   
  #include   <vcl.h>  
  #include   <windows.h>  
  #pragma   hdrstop  
  //---------------------------------------------------------------------------  
  //       Important   note   about   DLL   memory   management   when   your   DLL   uses   the  
  //       static   version   of   the   RunTime   Library:  
  //  
  //       If   your   DLL   exports   any   functions   that   pass   String   objects   (or   structs/  
  //       classes   containing   nested   Strings)   as   parameter   or   function   results,  
  //       you   will   need   to   add   the   library   MEMMGR.LIB   to   both   the   DLL   project   and  
  //       any   other   projects   that   use   the   DLL.     You   will   also   need   to   use   MEMMGR.LIB  
  //       if   any   other   projects   which   use   the   DLL   will   be   performing   new   or   delete  
  //       operations   on   any   non-TObject-derived   classes   which   are   exported   from   the  
  //       DLL.   Adding   MEMMGR.LIB   to   your   project   will   change   the   DLL   and   its   calling  
  //       EXE's   to   use   the   BORLNDMM.DLL   as   their   memory   manager.     In   these   cases,  
  //       the   file   BORLNDMM.DLL   should   be   deployed   along   with   your   DLL.  
  //  
  //       To   avoid   using   BORLNDMM.DLL,   pass   string   information   using   "char   *"   or  
  //       ShortString   parameters.  
  //  
  //       If   your   DLL   uses   the   dynamic   version   of   the   RTL,   you   do   not   need   to  
  //       explicitly   add   MEMMGR.LIB   as   this   will   be   done   implicitly   for   you  
  //---------------------------------------------------------------------------  
  #include   "file1.h"  
  #pragma   argsused  
  BOOL   WINAPI   DllMain(HINSTANCE   hinstDLL,   DWORD   fwdreason,   LPVOID   lpvReserved)  
  {  
                  return   1;  
  }  
   
  int   __stdcall   test(int   a,int   b)  
  {  
      return   a+b;  
  }  
   
  //---------------------------------------------------------------------------  
   
  file1.h  
  int   __stdcall   test(int   a,int   b);  
   
  编译生成project2.dll  
  然后implib   pro.lib   project2.dll  
  生成的pro.lib放在vc的Link下,结果出现上述错误。  
  我使用implib   -a   pro.lib   project2.dll生成的也不行。  
  ???  
   
  Top

8 楼zhangming(zm)回复于 2001-05-03 19:13:00 得分 10

直接用LIB转VC的LIB   试试看!Top

9 楼matrix2000(我要学InfoPath)回复于 2001-05-03 19:14:00 得分 0

直接用LIB转VC的LIB   ,什么意思?  
  我不是想在BCB用VC的LIB,而是在VC里用BCB的LIB呀!Top

10 楼matrix2000(我要学InfoPath)回复于 2001-05-03 20:15:00 得分 0

使用IMPLIB生成的新的lib到底是COFF   还是OMF,我是用coff2omf.exe转换时发现不论怎样使用implib转化,它生成的都是omf的,到底应该怎样使用BCB生成一个COFF格式的LIB呢?Top

11 楼matrix2000(我要学InfoPath)回复于 2001-05-04 08:59:00 得分 0

刷新Top

12 楼matrix2000(我要学InfoPath)回复于 2001-05-04 18:13:00 得分 0

各位大侠,小弟的意思是这样的。  
  我本想在VC里面调用BCB的静态链接库(不是静态调用BCB的动态链接库),因为在BCB中调用bmp,jpg的图形非常方便。可是我看到大家回复的意思好像还是先做一个Dll,然后从里面用implib导出一个lib让   VC调用,可是这样不就是VC静态调用BCB的动态链接库了吗?这与我直接想把一个静态的LIB链接到EXE文件的目的相悖了。  
  我使用VC的dependency   walker察看那个lib,显示d:\bcb\bcb4\PRO.LIB   No   dos   signature   found,this   file   is   not   a   valid   Win32   moudle.于是我使用BCB提供的implib左转右变,VC也不认这个lib。是不是implib无法导出一个VC能用的Lib呀。  
  请您再帮忙给找点这方面的资料。  
  谢谢。Top

13 楼kabob(kk.Chen)回复于 2001-05-05 03:22:00 得分 5

关注!!  
  TNND,Borland和Microsoft就不能兼容一下吗?Top

14 楼yeqiufeng(叶秋枫)回复于 2001-05-05 08:37:00 得分 5

@_@Top

15 楼xycleo()虚竹和尚()回复于 2001-05-05 09:41:00 得分 0

不对阿!!!!是用vc的implib.exe工具来把bcb的dll专成lib!!!让vc调用  
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
  Top

16 楼matrix2000(我要学InfoPath)回复于 2001-05-05 10:01:00 得分 0

是这样。  
  我再试试。  
  3ks先。Top

17 楼matrix2000(我要学InfoPath)回复于 2001-05-05 10:09:00 得分 0

等一等。虚竹兄。  
  VC没有提供implib呀,我装的也够全了。倒是有一个Lib.exe,是它吗?  
  如果是,可否告知怎么用。Top

18 楼xycleo()虚竹和尚()回复于 2001-05-05 10:10:00 得分 0

不好意思,vc   我也没试过  
  可能帮不了你啦!!  
  不过vc没有implib吗????Top

19 楼songhtao(三十年孤独)回复于 2001-05-05 13:10:00 得分 25

你看看《创世纪的C++Builder》说得很详细Top

20 楼songhtao(三十年孤独)回复于 2001-05-05 13:12:00 得分 0

vc里确实没有implib但《创世纪的C++Builder》解决了这个问题。Top

21 楼matrix2000(我要学InfoPath)回复于 2001-05-05 15:24:00 得分 0

给分了,谢谢各位。  
  看来VC只能调用BCB的动态链接库,而不能链接静态的LIB了。Top

22 楼ThinkX(秋天的树)回复于 2001-05-05 18:36:00 得分 0

用implib时,dll必须是标准的库,应加上extern   "C"吧Top

23 楼matrix2000(我要学InfoPath)回复于 2001-05-05 21:21:00 得分 0

加了。Top

相关问题

  • 如何用bcb调用vc的静态库
  • 用bcb静态调用VC是发生链接错误,为什么?
  • 如何调用 vc 的静态库
  • 用BCB调VC的动态链结库,静态调用,用implib转换还是不行,为什么?
  • bcb里静态调用动态库的格式,怎么声明?
  • 高分求解,如何静态调用VC的DLL。
  • 在BCB中如何静态调用动态连接库!~
  • 如何在CB6中静态调用VC的dll?
  • 在vc中实现怎样静态库的调用??
  • 关于调用静态dll

关键词

  • c++builder
  • bcb
  • vc
  • dll
  • implib
  • 调用
  • 静态
  • lib
  • 库
  • borlndmm

得分解答快速导航

  • 帖主:matrix2000
  • xycleo
  • wizardmao
  • Wingsun
  • zhangming
  • kabob
  • yeqiufeng
  • songhtao

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo