应用程序尝试使用advapi.dll regqueryvalueex方法访问注册表项值,该方法在xp(32位)中正常工作但在Windows 7(64位)上返回2。但是regopenkeyex在两台机器上都成功打开了注册表项。
已尝试过以下步骤,但仍无法读取注册表项值 1.尝试以管理员身份运行vb 6 ide 2.将注册表项移动到regedit中的wow64node
答案 0 :(得分:1)
出于某种原因,您的目标是为{16} Windows创建的advapi.dll
库。我不知道你甚至在Windows XP中如何使它工作,因为这是一个只有16位的DLL,它不会加载到Win32进程中,除非有某种类型的thunking层。
对于RegOpenKeyEx()的返回值“2”,文档告诉您:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724911%28v=vs.85%29.aspx
返回值
如果函数成功,则返回值为ERROR_SUCCESS。
如果函数失败,则返回值是系统错误代码。
如果lpData缓冲区太小而无法接收数据,则该函数 返回ERROR_MORE_DATA。
如果lpValueName注册表值不存在,则返回该函数 ERROR_FILE_NOT_FOUND。
谷歌搜索“系统错误代码”为您提供:http://msdn.microsoft.com/en-gb/library/windows/desktop/ms681382%28v=vs.85%29.aspx
你需要的是:
ERROR_FILE_NOT_FOUND
2 (0x2) The system cannot find the file specified.
如果您尝试在声明语句中使用advapi.dll
,则很可能在尝试运行API调用时会出现此错误。基本上,请检查您的声明声明。
当然,如果您能提供代码,我们肯定会知道,而不是尝试进行心理调试。