`
dazhilao
  • 浏览: 238879 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

C++Builder及VC的DLL相互调用[转]

 
阅读更多
原文地址:http://topic.csdn.net/u/20090302/17/99d1fbc5-4be6-4744-96d9-09b16c0d93c3.html
原创帖,引用的朋友请标明出处。
常在江湖飘,少不了要和DLL打交道。有时我们需要使用C++Builder编写一个DLL,然后拿到VC中用(比如用C++Builder写一个窗体封装到DLL);有时又要拿VC编写的DLL在C++Builder使用(比如拿到一个产品的开发包,这个包是一堆用VC写的DLL)。
很遗憾,由于MS和Borland(CodeGear)两家的编辑器实现细节不同,造成了它们生成的DLL不能相互通用,因此给实际带来了很多的麻烦。下面来说一说如何解决这个问题。
一、VC生成DLL,C++Builder调用。
1、用extern "C"修饰VC导出的DLL函数。如:extern "C" __declspec(dllexport) int aFunc(int a);
2、用C++Builder的implib工具生成DLL对应的lib文件。如:implib -a xxx.lib xxx.dll(注意,implib一定要带-a开关)。生成lib文件之后,C++Builder便可以使用这个lib文件了。

二、C++Builder生成DLL,VC调用。
1、用extern "C"修饰C++Builder导出的DLL函数。如:extern "C" __declspec(dllexport) int aFunc(int a);
2、用C++Builder的impdef工具生成DLL对应的def文件。如:impdef xxx.def xxx.dll。
3、用记事本打开xxx.def文件,删去每个函数名前的"_"。如原来的def文件为:
LIBRARY     XXX.DLL

EXPORTS
    ___CPPdebugHook                @2   ; ___CPPdebugHook
    _aFunc                         @1   ; _aFunc


那么删除后就变成了:
LIBRARY     XXX.DLL

EXPORTS
    __CPPdebugHook                @2   ; ___CPPdebugHook
    aFunc                         @1   ; _aFunc


4、用VC的LIB工具,根据上面的def文件生成lib文件。如:LIB /DEF:XXX.def。生成lib文件之后,VC便可以使用这个lib文件了。

综上说来,两种工具开发的DLL在相互使用的时候,主要的问题便是lib库的问题,能把这一问题解决好行了。
分享到:
评论

相关推荐

    C++builder调用VCdll.pdf

    C++builder调用VCdll.pdf

    PB调用java组件SatJni

    SatJni是C++编写的动态链接库,实现了C#,PB,Delphi,VB,VC等对Java的调用,能让你很容易地调用成熟的java类库和第三方java组件。不用再为移值java代码而烦恼。 示例中演示了PB调用webservice服务(无需代理对象)得到...

    亦思专业验证码识别系统 3.0

    亦思专业验证码识别系统,拥有国内领先的验证码识别技术,给您带来全新的验证码识别体验,3大...提供支持C#, VB.Net, VB, VC, Delphi, C++Builder、VFP、易语言调用的DLL。 网站:http://www.aldzsoft.com QQ:7153748

    Powerbuilder10.5调用socket

    powerbuilder10.5编写的测试代码,全部使用sokcetapi,没有中间dll。 包含VC服务器代码,一看就会。 https://blog.csdn.net/aasmfox/article/details/122097664

    根据硬件ID和程序ID生成注册码

    该组件支持.NET 和 Win32程序,支持多种开发语言Delphi, C++Builder, VC, C#, VB, VB.NET, PowerBuilder, Visual Foxpro,可以从Microsoft VBA, such as Word, Excel, Access 2000 / 2003 /2007直接调用。...

    vc++ 应用源码包_6

    这个例子就是查询任何可执行文件的版本信息并且 C++builder 和 VC 都通用,只需要把 AnsiString 替换成 CString 就行了。 gh0st v3.6 源码 - 可下断点调试! GMem 内存管理单元源码。GMem.cpp和GMem.h是内存管理...

    亦思专业验证码识别系统

    亦思专业验证码识别系统,拥有国内领先的验证码识别技术,...超高的识别率(95%-100%) 提供支持C#, VB.Net, VB, VC, Delphi, C++Builder、VFP、易语言调用的DLL 更详细的说明请访问亦思科技:http://enjoy-soft.cn

    RFID 标签 DLL SDK 开发指南 V3.5

    SDK 支持VC、 VB、 C#、 VB.NET、 C++ Builder 和Delphi 的开发。 使用函数注意事项: 1.对标签操作时(包括读标签,写标签),最好在主从模式下使用, 因为读写器 UART 通讯是半双工的,定 时模式下,此时读卡器...

    MSXML解析XML文档

    微软提供了一个XML语法解析器...因为COM是一种以二进制格式出现的和语言无关的可重用对象,所以你可以用任何语言(比如VB,VC,DELPHI,C++ Builder甚至是剧本语言等等)对它进行调用,在你的应用中实现对XML文档的解析。

    Visual C++音频视频处理技术及工程实践地址

    主要内容包括软件Visual C++2005的开发技术、DirectSound开发音频、DirectShow/VFW开发视频、MMX/SSE进行多媒体汇编编程、DM642 DSP进行音视频算法优化和主流视频算法MPEG-4/H.264的编码原理及工程实践。本书系统地...

    Visual C++音频视频处理技术及工程实践(分卷7)

    主要内容包括软件Visual C++2005的开发技术、DirectSound开发音频、DirectShow/VFW开发视频、MMX/SSE进行多媒体汇编编程、DM642 DSP进行音视频算法优化和主流视频算法MPEG-4/H.264的编码原理及工程实践。本书系统地...

    动态连接库技术应用中的两个重要问题

    动态连接库技术应用中的两个重要问题.vc和c++builder间的动态连接库调用

    指纹控件ActiveX控件

    由VC编写的dll,经运行注册即可使用。本人多次使用在VC、C++Builder的身份验证系统的编写中,十分好用。

    Visual C++音频视频处理技术及工程实践(分卷0)

    主要内容包括软件Visual C++2005的开发技术、DirectSound开发音频、DirectShow/VFW开发视频、MMX/SSE进行多媒体汇编编程、DM642 DSP进行音视频算法优化和主流视频算法MPEG-4/H.264的编码原理及工程实践。本书系统地...

    Visual C++音频/视频处理技术及工程实践 (分卷1)

    主要内容包括软件Visual C++2005的开发技术、DirectSound开发音频、DirectShow/VFW开发视频、MMX/SSE进行多媒体汇编编程、DM642 DSP进行音视频算法优化和主流视频算法MPEG-4/H.264的编码原理及工程实践。本书系统地...

    vc++ 开发实例源码包

    这个例子就是查询任何可执行文件的版本信息并且 C++builder 和 VC 都通用,只需要把 AnsiString 替换成 CString 就行了。 gh0st v3.6 源码 - 可下断点调试! 如题。详细见源码。 GMem 内存管理单元源码。GMem.cpp...

    可计算字符串值的动态联接库

    C++Builder5.0 例程 BCdemo.exe ============================================= 作者:罗伟 程序中采用的计算类来自www.csdn.net,在这里一并表示感谢如在使用中遇到问题或要源程序或要求增加更多功能请来电 ...

    Grid++Report报表构件

    Grid++Report 报表构件适用开发工具广泛:VB.NET... 为 Delphi、C++Builder 编写专门的包装类,象使用 VCL 构件一样使用 Grid++Report。6). 重新发布简单:只用分发两个 DLL 文件。7). 提供免费版本供广大开发者使用。

    Visual C++音频/视频处理技术及工程实践(分卷2)

    主要内容包括软件Visual C++2005的开发技术、DirectSound开发音频、DirectShow/VFW开发视频、MMX/SSE进行多媒体汇编编程、DM642 DSP进行音视频算法优化和主流视频算法MPEG-4/H.264的编码原理及工程实践。本书系统地...

    Visual C++音频视频处理技术及工程实践(分卷9)

    主要内容包括软件Visual C++2005的开发技术、DirectSound开发音频、DirectShow/VFW开发视频、MMX/SSE进行多媒体汇编编程、DM642 DSP进行音视频算法优化和主流视频算法MPEG-4/H.264的编码原理及工程实践。本书系统地...

Global site tag (gtag.js) - Google Analytics