- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)