VB语言中Declare Function outpot Lib…………
OptionExplicit'''Dimaddr1AsInteger,odataAsIntegerDeclareFunctionoutpotLib"c:\zzf\mydl...
Option Explicit
'''Dim addr1 As Integer, odata As Integer
Declare Function outpot Lib "c:\zzf\mydll" Alias "OUTDATA" (ByVal addr1%, ByVal odata%) As Integer
Declare Function inpot Lib "c:\zzf\mydll" Alias "INDATA" (ByVal addr1%) As Integer
上面的语言表示什么意思呢?请高手帮忙。我用的是一个vb遍的数据采集程序。这是程序的一部分。 展开
'''Dim addr1 As Integer, odata As Integer
Declare Function outpot Lib "c:\zzf\mydll" Alias "OUTDATA" (ByVal addr1%, ByVal odata%) As Integer
Declare Function inpot Lib "c:\zzf\mydll" Alias "INDATA" (ByVal addr1%) As Integer
上面的语言表示什么意思呢?请高手帮忙。我用的是一个vb遍的数据采集程序。这是程序的一部分。 展开
4个回答
2011-06-10
展开全部
这是手动引用外部dll,以outpot 为例通俗点说,outpot 是mydll中的函数OUTDATA在这个vb程序中的别名,你在vb中调用outpot 时,就相当于调用mydll中的OUTDATA了
具体的可以参见msdn:
用于在模块级别中声明对动态链接库 (DLL) 中外部过程的引用。
语法 1
[Public | Private] Declare Sub name Lib "libname" [Alias "aliasname"] [([arglist])]
语法 2
[Public | Private] Declare Function name Lib "libname" [Alias "aliasname"] [([arglist])] [As type]
Declare 语句的语法包含下面部分:
部分 描述
Public 可选的。用于声明对所有模块中的所有其它过程都可以使用的过程。
Private 可选的。用于声明只能在包含该声明的模块中使用的过程。
Sub 可选的(但 Sub 或 Function 二者需选其一)。表示该过程没有返回值。
Function 可选的(但 Sub 或 Function 二者需选其一)。表示该过程会返回一个可用于表达式的值。
name 必需的。任何合法的过程名。注意动态链接库的入口处(entry points)区分大小写。
Lib 必需的。指明包含所声明过程的动态链接库或代码资源。所有声明都需要 Lib 子句。
libname 必需的。包含所声明的过程动态链接库名或代码资源名。
Alias 可选的。表示将被调用的过程在动态链接库 (DLL) 中还有另外的名称。当外部过程名与某个关键字重名时,就可以使用这个参数。当动态链接库的过程与同一范围内的公用变量、常数或任何其它过程的名称相同时,也可以使用 Alias。如果该动态链接库过程中的某个字符不符合动态链接库的命名约定时,也可以使用 Alias。
aliasname 可选的。动态链接库或代码资源中的过程名。如果首字符不是数字符号 (#),则 aliasname 是动态链接库中该过程的入口处的名称。如果首字符是 (#),则随后的字符必须指定该过程的入口处的顺序号。
arglist 可选的。代表调用该过程时需要传递的参数的变量表。
type 可选的。Function 过程返回值的数据类型;可以是 Byte、布尔、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(只支持变长)或 Variant,用户定义类型,或对象类型。
具体的可以参见msdn:
用于在模块级别中声明对动态链接库 (DLL) 中外部过程的引用。
语法 1
[Public | Private] Declare Sub name Lib "libname" [Alias "aliasname"] [([arglist])]
语法 2
[Public | Private] Declare Function name Lib "libname" [Alias "aliasname"] [([arglist])] [As type]
Declare 语句的语法包含下面部分:
部分 描述
Public 可选的。用于声明对所有模块中的所有其它过程都可以使用的过程。
Private 可选的。用于声明只能在包含该声明的模块中使用的过程。
Sub 可选的(但 Sub 或 Function 二者需选其一)。表示该过程没有返回值。
Function 可选的(但 Sub 或 Function 二者需选其一)。表示该过程会返回一个可用于表达式的值。
name 必需的。任何合法的过程名。注意动态链接库的入口处(entry points)区分大小写。
Lib 必需的。指明包含所声明过程的动态链接库或代码资源。所有声明都需要 Lib 子句。
libname 必需的。包含所声明的过程动态链接库名或代码资源名。
Alias 可选的。表示将被调用的过程在动态链接库 (DLL) 中还有另外的名称。当外部过程名与某个关键字重名时,就可以使用这个参数。当动态链接库的过程与同一范围内的公用变量、常数或任何其它过程的名称相同时,也可以使用 Alias。如果该动态链接库过程中的某个字符不符合动态链接库的命名约定时,也可以使用 Alias。
aliasname 可选的。动态链接库或代码资源中的过程名。如果首字符不是数字符号 (#),则 aliasname 是动态链接库中该过程的入口处的名称。如果首字符是 (#),则随后的字符必须指定该过程的入口处的顺序号。
arglist 可选的。代表调用该过程时需要传递的参数的变量表。
type 可选的。Function 过程返回值的数据类型;可以是 Byte、布尔、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(只支持变长)或 Variant,用户定义类型,或对象类型。
展开全部
定义调用一个外部dll文件中的函数,看一下API的格式大体就知道了 。
安你的格式这个文件是c:\zzf\mydll.dll,调用的函数为outpot和 inpot
VB6专家百度Hi群1358368
安你的格式这个文件是c:\zzf\mydll.dll,调用的函数为outpot和 inpot
VB6专家百度Hi群1358368
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c:\zzf\mydll应该是编译好的动态连接库,上面的两名即为声明用做输入输出的函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Declare Function outpot Lib "c:\zzf\mydll" Alias "OUTDATA" (ByVal addr1%, ByVal odata%) As Integer
我就以这一个讲一下吧!
这个是引用dll的声明方法
Declare 声明 ,关键字
function :是一个函数
outpot :是你调用时用的名字,可以自己定义
Lib 关键字 ,后面是dll文件的路径 ,查找方法是 ,如果是绝对路径,直接查找,如果只有文件名 查找顺序为:程序所在目录-->系统目标/window ----> system --> system32
Alias 关键字 后面 OUTDATA,为dll内存放的名字,不能改
后面 addr1 odata 就是两个参数 ,按值传递 integer 型
返回类型 integer
呵呵 应该能明白吧!
我就以这一个讲一下吧!
这个是引用dll的声明方法
Declare 声明 ,关键字
function :是一个函数
outpot :是你调用时用的名字,可以自己定义
Lib 关键字 ,后面是dll文件的路径 ,查找方法是 ,如果是绝对路径,直接查找,如果只有文件名 查找顺序为:程序所在目录-->系统目标/window ----> system --> system32
Alias 关键字 后面 OUTDATA,为dll内存放的名字,不能改
后面 addr1 odata 就是两个参数 ,按值传递 integer 型
返回类型 integer
呵呵 应该能明白吧!
更多追问追答
追问
谢谢,已经很明白。我再请教一个问题,dll文件中的outdata和indata函数是vb中默认的还是自己定义的呢?起什么作用?谢谢
追答
先说明上你的dll文件 和功能,我是不知道,因为那个dll不是本人做的,也不是windows的API那是别人做的,具体功能,只能看下他有没有说明,
我们都可以做dll,所以起什么作用,我还真没有办法回答 你!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询