我在调用下列函数时,"ByVal lpPassword As String, ByVal lpUserName As String"两参数类型出错,不知为什么?
直接 lpPassword=text1.text 赋值则正常定义一个string变量spwd=text1.text,然后lpPassword=spwd 则提示"ByRef参数类型不对",请高手指点,谢谢!!Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long
直接 lpPassword=text1.text 赋值则正常定义一个string变量spwd=text1.text,然后lpPassword=spwd 则提示"ByRef参数类型不对",请高手指点,谢谢!!Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long
lpPassword=text1.text没错,但赋值给函数时请加上Byval,否则系统默认为按地址传递,而不是按值传递。
调用该函数时如下:
WNetAddConnection2(**,Byval text1.text,Byval **,**)
此问题解决方法:定义变量spwd时设为variant类型即可.