动态库使用方法.doc

上传人:hs****ma 文档编号:559624051 上传时间:2023-05-05 格式:DOC 页数:7 大小:44KB
返回 下载 相关 举报
动态库使用方法.doc_第1页
第1页 / 共7页
动态库使用方法.doc_第2页
第2页 / 共7页
动态库使用方法.doc_第3页
第3页 / 共7页
动态库使用方法.doc_第4页
第4页 / 共7页
动态库使用方法.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《动态库使用方法.doc》由会员分享,可在线阅读,更多相关《动态库使用方法.doc(7页珍藏版)》请在金锄头文库上搜索。

1、动态库使用方法一、WINDOWS动态库文件我公司提供WINDOWS平台下的WINDOWS 32动态库,文件名称如下:M100_DLL.H 32位动态库的头文件M100_DLL.LIB 32位动态库的输入库M100_DLL.DLL WINDOWS 32位动态库二、调用WINDOWS动态库的方法1.通常我们在调用DLL时所需的DLL文件必须位于以下三个目录之一: (1)Windows的系统目录:windowssystem; 或windowssystem32; (2)DOS中path所指出的任何目录; (3)程序所在的目录; 同时应注意管理好你的.lib文件和.h和文件 2基于WINDOWS平台的各

2、种开发工具调用动态库的方法各不相同,介绍如下:1Delphi调用16位或32位动态库的方法16位与32位动态库调用方法相同。语法:Public Private | protected Function FunctionName(Var Arg1:DataType1; Arg2:DataType2;.) :ReturnDataType; far;stdcall;external libname Name AliasName;调用语句的语法包含下面部分:关键字Public(可选),表示函数可以被程序代码中的任意部分访问。关键字Private(可选),表示函数在声明类的单元(源代码)外不能访问。关键

3、字Protected(可选),表示保护函数,保护元素只能被当前类和它的子类访问。关键字Function(必选),表示调用函数,函数有返回值。FunctionName(必选),调用外部函数的名称,区分大小写。关键字Var(可选),表示通过引用传递参数,函数参数可以用值传递,也可以通过引用传递。通过引用传递参数,它的值没被复制到存放函数例程参数的堆栈中,程序执行速度快。通过引用传值,将允许过程和函数改变参数的值。ArgN:DataTypeN(可选),参数名以及参数类型,传递的参数类型可以是:Shorint,Smallint,Longint,Integer(16/32),Single,Double,

4、Extended,Currency,Date,Pchar,Object,Variant等。ReturnType(可选),函数返回值的类型。Stdcall(必选),表示传递约定,这样调用模块(应用程序),与被调用模块(DLL)就使用相同的参数约定。关键字external(必选),声明访问外部函数。Libname(必选),访问的DLL名称,16位Delphi中外部声明不带扩展名的库名。Name AliasName(可选),Name指令可以为外部函数起别名,避免与系统例程和函数名称冲突。外部程序调用的DLL函数,必须遵照下列规则:(1)必须列在DLL的exports子句中。(2)在Delphi3中,

5、调用函数还需被声明为stdcall,来使用标准的WIN32参数传递技术。代替优化的register参数传递技术。(3)在WIN32中,DLL可以使用全局数据,该数据将不会通过调用应用程序来分享,每当应用程序装载DLL时,它在自己的地址空间中存储着DLL的全部数据。2 PB调用32位动态库的方法语法: access FUNCTION returndatatype name (REF datatype1 arg1, .,REF datatyn argn) LIBRARY libname部分描述:access (仅仅能声明为本地函数) 有选择的声明访问级别。可以声明为PUBLIC、PRIVATE、P

6、ROTECTED三种访问级别,缺省级别是PUBLIC。returndatatype 表示函数返回值的类型。Name 调用的外部函数名称,区分大小写。关键字ref(可选),表示通过引用传递参数。函数参数可以用值传递增,也可以通过引用传递。通过引用传递参数,就意味着它的值没被复制到存放函数例程参数的堆栈中,避免复制可以使程序执行速度加快。通过引用传值,这将允许过程和函数改变参数的值。datatype argn(可选),参数类型以及参数名,表示要传递的参数。LIBRARY libname 指定调用外部动态库的名称。3 VB调用16位或32位动态库的方法16位与32位动态库调用方法相同。语法:Publ

7、ic | Private Declare Function name Lib libname Alias aliasname (arglist) As typeDeclare 语句的语法包含下面部分:Public (可选)用于声明在所有模块中的所有过程都可以使用的函数。Private(可选),用于声明只能在包含该声明的模块中使用的函数。Name(必选),任何合法的函数名。动态链接库的入口处(entry points)区分大小写。Libname(必选),包含所声明的函数动态链接库名或代码资源名。Alias(可选),表示将被调用的函数在动态链接库 (DLL) 中还有另外的名称。当外部函数名与某个函

8、数重名时,就可以使用这个参数。当动态链接库的函数与同一范围内的公用变量、常数或任何其它过程的名称相同时,也可以使用 Alias。如果该动态链接库函数中的某个字符不符合动态链接库的命名约定时,也可以使用 Alias。Aliasname(可选)动态链接库。如果首字符不是数字符号 (#),则 aliasname 是动态链接库中该函数入口处的名称。如果首字符是 (#),则随后的字符必须指定该函数入口处的顺序号。Arglist(可选),代表调用该函数时需要传递参数的变量表。Type(可选),Function返回值的数据类型;可以是 Byte、Boolean、Integer、Long、Currency、S

9、ingle、Double、Decimal(目前尚不支持)、Date、String(只支持变长)或 Variant,用户定义类型,或对象类型。arglist 参数的语法如下:Optional ByVal | ByRef ParamArray varname( ) As type部分描述:Optional(可选),表示参数不是必需的。如果使用该选项,则 arglist 中的后续参数都必需是可选的,而且必须都使用 Optional 关键字声明。如果使用了 ParamArray,则任何参数都不能使用 Optional。ByVal(可选),表示该参数按值传递。ByRef(可选),表示该参数按地址传递。

10、ParamArray(可选),只用于 arglist 的最后一个参数,表示最后参数是一个 Variant 元素的Optional 数组。使用 ParamArray 关键字可以提供任意数目的参数。ParamArray 关键字不能与 ByVal、ByRef或 Optional 一起使用。Varname(必选),代表传给该函数参数的变量名;遵循标准的变量命名约定。( ) 对数组变量是必需的。指明 varname 是一个数组。type (可选),传递给函数参数的数据类型;可以是除Decimal以外的任何类型。说明:Function的数据类型决定其返回值的数据类型。可以在 arglist 之后使用 As

11、 子句来指定函数返回值的数据类型。在 arglist 中,可以使用 As 子句来指定任何传给该函数参数的数据类型。不单可以指定为任何标准数据类型,还可以在 arglist 中指定 As Any 来禁止类型检查,从而允许将任意数据类型传递给该函数。空圆括号表示该 Function 没有参数,且 Visual Basic 应确保不会传递任何参数。注意:(1)当所调用的外部函数需要一个值为 0 的字符串时,就要使用 vbNullString 常数。该常数与零长度字符串 ()是不相同的。(2)VB5调用32位动态库,对于ASCII码值大于128的读写操作,请参考Examples 中24系列的BYREF

12、传递方式;16位动态库可以直接使用CHR函数转换。4 VC调用16位或32位动态库的方法(1)在.CPP中包含“MWIC_*.H”头文件;(2)在工程文件中加入MWIC_*.LIB文件。5 VFP调用32位动态库的方法语法:DECLARE 返回参数类型 函数名 IN 动态库名 AS 别名参数类型1 参数1,参数类型2 参数类型2, .返回参数类型:类型 说明SHORT 16-bit integerINTEGER 32-bit integerSINGLE 32-bit floating pointDOUBLE 64-bit floating pointSTRING Character strin

13、g函数名:输入动态库提供的函数名。 注意:区分大小写,一定要严格遵循定义。IN 动态库名:输入MWIC32.DLL.AS 别名:取一个别名,不能使别名与其它函数名相同。可以省略参数类型:类型 说明INTEGER 32-bit integerSINGLE 32-bit floating pointDOUBLE 64-bit floating pointSTRING Character string可传送空字符(NULL),VFP缺省用值传递,若要用地址传递,在参数前加 。三、动态链接库的有关资料教你认识动态链接库DLL文件 DLL是Dynamic Link Library的缩写,意为动态链接库。

14、在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可有多个DLL文件,一个DLL文件也可能被几个应用程序所共用,这样的DLL文件被称为共享DLL文件。DLL文件一般被存放在C:WindowsSystem目录下。1、如何了解某应用程序使用哪些DLL文件右键单击该应用程序并选择快捷菜单中的“快速查看”命令,在随后出现的“快速查看”窗口的“引入表”一栏中你将看到其使用DLL文件的情况。2、如何知道DLL文件被几个程序使用运行Regedit,进入HKEY_LOCA

15、L_MACHINESoftwareMicrosrftWindowsCurrent-VersionSharedDlls子键查看,其右边窗口中就显示了所有DLL文件及其相关数据,其中数据右边小括号内的数字就说明了被几个程序使用,(2)表示被两个程序使用,(0)则表示无程序使用,可以将其删除。3、如何解决DLL文件丢失的情况有时在卸载文件时会提醒你删除某个DLL文件可能会影响其他应用程序的运行。所以当你卸载软件时,就有可能误删共享的DLL文件。一旦出现了丢失DLL文件的情况,如果你能确定其名称,可以在Sysbckup(系统备份文件夹)中找到该DLL文件,将其复制到System文件夹中。如果这样不行,在电脑启动时又总是出现“*dll文件丢失”的提示框,你可以在“开始/运行”中运行Msconfig,进入系统配置实用程序对话框以后,单击选择“System.ini”标签,找出提示丢失的DLL文件,使其不被选中,这样开机时就不会出现错误提示了。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号