我有一个由其他人编码的程序。它有一个函数RegGetValue用作:
uFuncReturnValue = RegOpenKeyExA( HKEY_LOCAL_MACHINE,
acSubKey,
NULL,
KEY_READ | KEY_WRITE,
&hRegistry
);
//Store signature of the disk in the first 32 bytes of structVal
if( uFuncReturnValue != ERROR_SUCCESS )
{
printf("Unable to open registry with error %u\n", uFuncReturnValue);
exit(EXIT_FAILURE);;
}
uFuncReturnValue = RegGetValueA( hRegistry,
NULL,
"\\DosDevices\\C:",
RRF_RT_REG_BINARY,
NULL,
(LPVOID)&structVal,
&dwSize
);
此代码块在Windows 7上运行良好,但在Windows XP(32位)上运行时返回错误。由于32位xp没有 RegGetValue 功能所以我试图使用 RegQueryValueEX ,但我在向这个函数传递参数时遇到了问题。我认为它应该用于某些事情:
uFuncReturnValue = RegQueryValueExA ( hRegistry,
"\\DosDevices\\J:",
NULL,
NULL,
(LPBYTE) &structVal,
&dwSize
);
但是这里有些错误,因为代码编译成功,但是当我执行它时,我收到一条消息:
程序'(128)myProgram.exe: Native'已退出代码1(0x1)。
有人可以帮助我吗?