- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如何在Visual Basic应用程序中调用动态链接库
如何在Visual Basic应用程序中调用动态链接库
王向阳
摘 要:Visual Basic应用程序调用动态链接库的方法、步骤及应该注意的一系列问题,同时给出了参考性示例。 关键词:Windows 动态链接库 Visual Basic语言
Windows动态链接库(Dynamic Link Library,简称DLL)是Microsoft Windows操作系统最显著的特点之一,也是Windows系统成为优秀软件设计平台的基础。由于动态链接库提出了一个全新的概念,使得程序设计人员可以利用动态链接库函数(或过程)实现应用程序代码和资源的共享,因此极大地提高了应用程序的编写效率,而且在多任务环境下还可以大大提高应用程序的执行效率。 Visual Basic(以下简称VB)是Microsoft公司推出的一种简单、方便、高效率的全新Windows编程工具和环境,其本身就是通过动态链接库函数或过程工作的,不仅如此,VB还允许其应用程序直接调用动态链接库(包括用户自己开发的动态链接库)函数或过程,以进一步扩充VB应用程序设计能力,实现原本只有C(或C++)才能完成的功能。 下面详细说明VB应用程序调用动态链接库的方法、步骤及应该注意的一系列问题。一般情况下,VB应用程序调用动态链接库需要经过2个步骤:声明和调用。
1 动态链接库函数或过程的声明
所谓调用动态链接库实际上是指用户在用VB开发的Windows应用程序内使用动态链接库中的函数或过程。而在使用之前,应该首先对动态链接库函数或过程进行声明。 1.动态链接库函数或过程的声明方法 动态链接库函数或过程必须在全局模块或表格级模块中声明才有效。当动态链接库函数或过程没有返回值时要声明成子程序Sub方式,若有返回值则应声明成函数Function方式,具体格式如下。 子程序Sub格式: Declare Sub动态链接库函数或过程名Lib动态链接库名[Alias别名](参数) 函数Function格式: Declare Function动态链接库函数或过程名Lib动态链接库名[Alias别名](参数)As数据类型 其中: 动态链接库函数或过程名为被调用动态链接库中的函数或过程的名字。 动态链接库名为动态链接库函数或过程所在的动态链接库的名字。 Alias别名为可选项,用户可为动态链接库取1个别名。 参数为可选项,当调用动态链接库函数或过程时,由VB传送给动态链接库函数或过程的参数格式和类型。 数据类型为动态链接库函数或过程返回值的类型。 2.动态链接库函数或过程声明的注意事项 动态链接库函数或过程的声明应该注意如下几点: (1)Lib动态链接库名 若使用的是Windows操作系统本身的动态链接库,如USER.DLL、KERNEL.DLL等,则只要直接说明为库名即可。如果使用的是其他来源的动态链接库,则须指明动态链接库的全路径名,如“D:\USER\EXAMPLE.DLL”。值得指出的是Declare声明中对大小写字母不敏感。 (2)参数及其传递方式 在VB中,有按值传递(By Value)和按地址传递(By Reference)2种子程序或函数调用的参数传递方式。调用动态链接库函数时要注意参数的传递方式,若按值方式传递,则应在参数前面加上“Byval”关键字;按地址传递则不加此关键字。应注意的是在C语言的函数中,除数组按地址方式传递外,其余均按值方式传递参数。 (3)任意类型的参数 一些动态链接库函数或过程的同一参数可接收多种不同类型的参数值,这时要用As Any作为参数的类型,As Any表示参数的类型不受限制。值得注意的是:当参数以As Any方式说明时,VB是以地址方式传递参数的。 (4)特殊名字的处理 当要调用的动态链接库函数或过程和VB标准的系统函数重名,或者有一些动态链接库函数或过程名在VB中是不合法的符号(如含有减字符“-”,或下划线“”)时,可使用Alias为其声明1个别名。利用别名方法还可以对动态链接函数或过程进行改名,例如可以将某个名字很长的函数用一个简短的别名替代。 3.声明示例 设Procl是用户自定义动态链接库EXAMPLE.DLL中的1个处理函数,其中整型参数x按值传送,双精度型参数y按地址传送,函数返回值为双精度型,且动态链接库EXAMPLE.DLL存放在D盘的USER子目录(文件夹)中。则在VB应用程序中,对于函数Procl的声明就应该为: Declare Function Procl Lib “D:\User\Example.dll(Byval x As Integer,y As Double)As Double
2 动态链接库函数或过
文档评论(0)