RegSetValueEx写的结果为什么不对
编号:QA003007
建立日期: 2000年6月1日 最后修改日期:2000年6月1日
所属类别:
吴昊:
操作系统: Windows 98
编程工具: VB6.0
问题: 我在用 RegSetValueEx 函数时出现问题:
Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Dim lngValue As Long
lngValue = 1
RegSetValueEx HKEY_CURRENT_USER, "Test", 0, REG_DWORD, lngValue, 4
然后运行程序,为什么得到的结果不是1而是0x6500c90f ?? 我试将 1 改为 "1" 但结果仍然不是1, 请问如何才能用此函数写任意的DWORD 值呢?
回答:
注意你的声明中将lpData说明为As Any,这样这个参数是传值的,也就是说实际写的0x6500c90f不是lngValue的值,而是地址。要正确调用,必须:
RegSetValueEx HKEY_CURRENT_USER, "Test", 0, REG_DWORD, ByVal lngValue, 4
相关问题:
QA002553 "如何用VB5对注册表二进制值键值进行读写"
此问题由李海回答。
| |
|
|
| |
|
|