jjzjj

RegQueryValueEx

全部标签

c - 确定 C 中 RegQueryValueEx 所需的缓冲区大小

是否有具体的方法来确定C中RegQueryValueEx的REG_BINARY值所需的确切缓冲区大小?如果可能,请提供代码演示方法。 最佳答案 执行winAPI双重调用舞蹈,它适用于除Reg函数之外的众多winAPI:调用RegQueryValueEx一次,将NULL作为lpData传递,并传递指向lpcpData的指针,args5和6。该函数将返回ERROR_SUCCESS并填充lpcpData具有所需的缓冲区大小。使用该大小的缓冲区再次调用。您也可以从传递缓冲区开始,如果它太小,函数将返回ERROR_MORE_DATA并用所需的

c - RegQueryValueEx()读取REG_DWORD时总是在*lpData中填0

我对RegQueryValueEx()函数有疑问当我使用它时,它用0填充*lpDataLONGWINAPIRegQueryValueEx(_In_HKEYhKey,_In_opt_LPCTSTRlpValueName,_Reserved_LPDWORDlpReserved,_Out_opt_LPDWORDlpType,_Out_opt_LPBYTElpData,_Inout_opt_LPDWORDlpcbData);这是不起作用的代码#include#includeintmain(){HKEYhKey=NULL;DWORDdata=42;DWORDtype=REG_DWORD;DWOR

java - win32 从 C++ 代码中读取 Java 首选项

我们的一个程序在Java首选项中写入程序信息(窗口标题、内存等)。在Windows上,这在注册表下可用。如何使用c(或c++)读取Java程序编写的值。看起来我应该使用的API是RegGetValue。这是否保证可以在WindowsXP32位上运行?java写的String是UTF-8编码的。我如何在windows(win32或vc++)中读取这样的字符串干杯,贾安 最佳答案 我对此进行了深入研究。RegGetValue()是一个新的注册表调用,它处理传统查询注册表(RegQueryValueEx)方式的一些潜在问题。这里有一些关于

c++ - 如何在 C++ 中使用 RegQueryValueEx(..) 从注册表中读取 REG_MULTI_SZ 类型的值

在我们的vc++win32应用程序中,我们正在读取reg_multi_sz类型的注册表值,它在32位上运行良好,但在64位上运行时给出空缓冲区。如何从我的32位应用程序中读取64位注册表的值? 最佳答案 能具体点吗?通常,当您尝试在32位代码中读取64位注册表配置单元时,您必须使用KEY_WOW64_64KEY打开HKLM\Software。希望对您有所帮助。 关于c++-如何在C++中使用RegQueryValueEx(..)从注册表中读取REG_MULTI_SZ类型的值,我们在Sta

c++ - 为什么 RegQueryValueEx() 函数在尝试读取注册表项时返回 ERROR_FILE_NOT_FOUND?

系统:Windows732位语言:C++我已尝试访问寄存器HKEY_LOCAL_MACHINE\\HARDWARE\\DEVICEMAP\\Scsi\\ScsiPort0,keyDriver(键入REG_SZ)——没问题。从HKEY_LOCAL_MACHINE\\HARDWARE\\DEVICEMAP\\SERIALCOMM读取相同,所有键(类型REG_SZ)都有斜线,例如\Device\序列号0。在读取此类键时,它始终返回2(没有此类文件),示例代码如下:HKEYhKey=0;DWORDdwType=REG_SZ;charbuf[255]={0};DWORDdwBufSize=siz