我在编绎的时候为什么会出现“类型不匹配”的错误?错误提示指向的一行如下
tmp = RegEnumValue(key, idx, ByVal vbNullString, lenname, ByVal 0, typedata, ByVal vbNullString, lendata)
代码如下:
Enum rootkey
HKEY_CLASSES_ROOT = &H80000000
HKEY_CURRENT_USER = &H80000001
HKEY_LOCAL_MACHINE = &H80000002
HKEY_USERS = &H80000003
HKEY_CURRENT_CONFIG = &H80000004
End Enum
Enum valuetype
reg_none = 0
reg_sz = 1
reg_expand_sz = 2
reg_binary = 3
reg_dword = 4
reg_dword_big_endian = 5
reg_link = 6
reg_multi_sz = 7
End Enum
Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, lpReserved As Long, lpType As Long, lpData As Byte, lpcbData As Long) As Long
Declare Function ExpandEnvironmentStrings Lib "kernel32.dll" Alias "ExpandEnvironmentStringsA" (ByVal lpSrc As String, ByVal lpDst As String, ByVal nSize As Long) As Long
Private Sub Command1_Click()
Dim name As String
Dim lenname As Long
Dim typedata As Long
Dim key As Long
Dim idx As Integer
Dim lendata As Long
Dim tmp As Long
tmp = RegEnumValue(key, idx, ByVal vbNullString, lenname, ByVal 0, typedata, ByVal vbNullString, lendata)If tmp <> 0 Then
Exit Sub
End If
tmp = RegEnumValue(key, idx, ByVal vbNullString, lenname, ByVal 0, typedata, ByVal vbNullString, lendata)
If tmp <> 0 Then
RegCloseKey key
Exit Sub
End If
Print tmp
End Sub