RegOpenKeyEx、RegOpenKey FormatMessage

今天读注册表时一直返回错误,使用RegOpenKeyEx返回5 失败,而RegOpenKey返回0 成功

查了N多文章未果...

 

RegOpenKeyEx说明

 http://feed.yeeyan.com/articles/view/17986/4844

 

里面提到返回值:

如果函数调用成功,返回值ERROR_SUCCESS.
否则,函数将返回一个定义于Winerror.h的非零错误码.可以使用FormatMessage函数以及FORMAT_MESSAGE_FROM_SYSTEM标识符来得到一个常规的错误描述.
FormatMessage的使用方法参见或MSDN
 
因此,用FormatMessage解析错误码
 HKEY hResult = NULL;
 LONG nResult = RegOpenKeyEx(HKEY_CURRENT_USER, "SOFTWARE", KEY_READ, NULL, &hResult);
 TCHAR *buffer;
 //DWORD error = ERROR_DS_OBJ_STRING_NAME_EXISTS;
 ::FormatMessage(
  FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
  NULL,
  nResult,
  0,
  ( LPTSTR )&buffer,
  0,
  NULL );
 ::MessageBox( NULL, buffer, NULL, 0 );
 LocalFree( buffer ); 
 
得到错误信息为:拒绝访问
...
不明白为啥拒绝访问
 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值