dll制作问题 我制作的WIN 32 DLL为什么不能在VB中调用呢,在程序执行时总是出现找不到函数的入口点在MYDLL.DLL中,而在VC中用隐式连接调用就不会出现这个问题 ,多谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果用的是c++,export函数是否已经加上了extern "C"? 总是在调用时出现错误,错误提示为"找不到入口参数 initcomm in crtdll.dll"加入extern "C"也不行 在函数前家__stdcall 就好了,用DEF导出, 2.4 VB 调用32 位动态库方法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 进制方式读写。 创建一个文件,内容类似下面的格式,DllRegister 是函数名,@1是类似序号的一个东西@2,@3.......LIBRARY "DllReg"EXPORTS DllRegister @1 谁知道如何使用VC++制作dll库函数 MFC界面 内存中的RGB码怎么显示出来? vs2008中怎么为activex添加自定义属性页? ATL如何触发IHTMLSelectElement组合框的onchange事件 请教高手,急!!! ADO访问VFP的dbf数据库的问题 帮我解释一下 视频压缩算法怎么了? 用c开发com,用纯c++,还是用mfc或atl,本人才学了com,但发现用atl来开发com又要学atl,怎么办? 我想考MCSD(VC++),请各位高手给我推荐几本好书,谢谢! 关于 DirectX9 SDK 的两个问题 关于定义了快捷键的问题
加入extern "C"也不行
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 进制方式读写。
EXPORTS
DllRegister @1