银魂同人漫画r18触手:【转】vb调用dll函数声明方法

来源:百度文库 编辑:中财网 时间:2024/04/28 07:22:07
用vc写的DLL的有__stdcall才可以被其他的调用,所以。。。   
  vb调用   
  16   位DLL   调用方法与32   位DLL   调用方法类同。   
  语法:   
  [Public   |   Private]   Declare   Fun   Function   name   Lib   "libname"   [Alias   "aliasname"]   
  ction   [([arglist])]   [As   type]   
  Declare   语句的语法包含下面部分:   
  Public   可选的。用于声明对所有模块中的所有其它过程都可以使用的函数。   
  Private   可选的。用于声明只能在包含该声明的模块中使用的函数。   
  name   必需的。任何合法的函数名。动态链接库的入口处(entry   points)区分大小写。   
  libname   必需的。包含所声明的函数动态链接库名或代码资源名。   
  Alias   可选的。表示将被调用的函数在动态链接库(DLL)   中还有另外的名称。当外部函数名与某个函数重名时,就可以使用这个参数。当动态链接库的函数与同一范围内的公用变量、常数或任何其它过程的名称相同时,也可以使用Alias。如果该动态链接库函数中的某个字符不符合动态链接库的命名约定时,也可以使用Alias。   
  aliasname   可选的。动态链接库。如果首字符不是数字符号(#),则aliasname   是动态链接库中该函数的入口处的名称。如果首字符是(#),则随后的字符必须指定该函数的入口处的顺序号。   
  arglist   可选的。代表调用该函数时需要传递的参数的变量表。   
  type可选的。Function   返回值的数据类型;可以是Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(只支持变长)或Variant,用户定义类型,或对象类型。   
  arglist   参数的语法以及语法各个部分如下:   
  [Optional]   [ByVal   |   ByRe   ByRef]   [ParamArray]   varname[(   )]   [As   type]   部分描述:   
  Optional可选的。表示参数不是必需的。如果使用该选项,则arglist   中的后续参数都必需是可选的,而且必须都使用Optional   关键字声明。如果使用了ParamArray,则任何参数都不能使用Optional。   
  ByVal   可选的。表示该参数按值传递。   
  ByRef   表示该参数按地址传递。   
  ParamArray   可选的。只用于arglist   的最后一个参数,表示最后的参数是一个   
  Variant   元素的Optional   的数组。使用ParamArray   关键字可以提供任意数目的参数。   
  ParamArray   关键字不能与ByVal、ByRef   或Optional   一起使用。   
  varname   必需的。代表传给该函数的参数的变量名;遵循标准的变量命名约定。   
  (   )   对数组变量是必需的。指明varname   是一个数组。   
  type可选的。传递给函数的参数的数据类型;可以是除Decimal   以外的任何类型。   
  说明:   
  Function   的数据类型决定其返回值的数据类型。可以在arglist   之后使用As   子句来指定函数返回值的数据类型。在arglist   中,可以使用As   子句来指定任何传给该函数的参数的数据类型。不单可以指定为任何标准数据类型,还可以在arglist   中指定As   Any   来禁止类型检查,从而允许将任意数据类型传递给该函数。空圆括号表示该Function   没有参数,且Visual   Basic   应确保不会传递任何参数。   
  注意:(1)   当所调用的外部函数需要一个值为0   的字符串时,就要使用vbNullString   常数。该常数与零长度字符串("")   是不相同的。   
  (2)   VB5   或VB6   调用32   位动态库,对于ASCII   码值大于128   的读写操作,请参考Examples   中16   进制方式读写。