VB和C++builder中动态链接库的相互调用.docVIP

VB和C++builder中动态链接库的相互调用.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VB和C++builder中动态链接库的相互调用 2005年12月河北工程技术高等专科学校 第4期JOURNALOFHEBEIENGINEERINGANDTEcHNIcALCOLLEGE Dec.2005 No.4 文章编号:1008—3782(2004)O4—0011一O2 VB和C++builder中动态链接库的相互调用 李鹏,冯涛 (河北工程技术高等专科学校计算机系,河北沧州061001) 摘要:文中以VB和C++Builder(CB)为例,给出了其动态链接库的生成与相互调用方法. 关键词;动态链接库;VB;C++Builder;调用 中图分类号:TP312文献标识码:A 随着计算机技术的迅速发展,面对对象的应用程序的开发在如今尤为普通,如何提高不同的开发工具如 VB,Delphi,C++,PB等之间代码的重复使用效率就成了一个很重要的问题.动态链接库的引人为我们提 供了一个有效的解决方法.文中给出了一个使用VB和C++Builder进行动态链接库开发和调用的例子. 1动态链接库 动态链接库是Windows程序设计中的一个非常重要的组成部分.DLL是经过编译的代码模块,它和可 执行文件一起工作,为应用程序提供功能,也可供多个程序同时调用,从而减少内存的占用,实现每个程序的 数据独立和代码共享. 2VB中DLL的生成方法 VB中创建的DIL只是COM组件,无法作为输出函数的DLL.但在link的时候添加EXPORT选项是 还可以作为输出函数的.但在VB中将这项功能屏蔽了.不过,可以使用下面的方法生成具有输出函数的 DLL. 首先创建新的link.exe文件,方法是把VB的link.exe文件移动到d:\,再创建一个exe工程,在Form— Load()中加入下面的语句,然后编译为link.exe. If(MsgBoxC确定要编译吗?,vbOKCanee1)=vbOk)Thenshelld:\link.exeamp;Command$ 然后创建AetiveXDIL工程sumdllp.vbp,在工程里添加一个Module并在其中创建Public函数sum (ByValaAsInteger,ByValbAsInteger).编译工程,在Link的时候就会中断,此刻把创建的sumclass. obj,Module1.obj,sumdllp.obj备份到d:\.然后调用D:\Link.exe连接OBJ到DLL了,代码是: D:\gt;link.exesumclass.objModule1.objsumdllp.objvbaexe6.1ib/lib/EMTRY:一vbas/EXPORT: sum0UT:sum.dll/SUBSYSTEM:WINDOW,4.0 其中的/EXPORT开关声明了输出函数sum.至此DLL文件生成完毕. 3C++Builder中DLL的生成方法 首先利用CB中的DLIWizard生成一个DLL工程SumDLLProjeet,在SumDLI.Cpp单元文件中添 加导出函数说明externC一declspec(dllexport)int—stdeallSUM(intx,inty),然后添加用户的函数: int— stdcallSUM(intx,inty) {Rerutnx+y;) 注意VB中函数的默认调用方式为一 stdeall,因此需要在函数原型说明和函数定义中加入一stdeall关 收稿日期:2005—05—19 作者简介:李鹏(1971一),男,河北吴桥人,河北工程技术高等专科学校讲师,华中科技大学工程硕士. 12河北工程技术高等专科学校2005 键字,否则在VB中调用时提示DLL调用约定错误. 最后对DLL工程进行编译和链接,生成需要的DLL文件并在DOS方式下用Implibsumdllproject.1ib sumdllproject.dll生成CB静态装载DLL时需要的链接导入库文件(.1ib). 4VB中DI.,L的调用方法 首先要把SumDLLProject.dll或Sum.dll复制到系统的System32目录下,否则会提示找不到文件.调 用时函数名的名称和大小写要与原定义的函数一致,否则会提示找不到DLL的入口点.在VB窗体声明区 中加入如下代码即可使用其中的函数sum. PrivateDeclareFunctionSUMLibHSumDLLProject.dllH(ByValaAsInteger,ByValbAsInteger)As Integer 5C++Builder中DLL的调动方法 在CB中使用DLI文件的方法有静态装载和动态装载两种.静态调用的方法是在Project/AddtoPro— ject菜单加入所需的导入库文件SumDLLProject.1ib,然后在单元文件中加入对DLL

文档评论(0)

yurixiang1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档