CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

有关注册表操作遇到的问题!!急急

楼主lengxue129(ying)2004-09-01 15:54:43 在 VC/MFC / 基础类 提问

部分代码如下  
  if(RegOpenKeyEx(HKEY_CURRENT_USER,lpSubKey,0,KEY_ALL_ACCESS,&hKey)==ERROR_SUCCESS)  
  {  
  if(RegQueryValueEx(hKey,lpValueName,NULL,&dwType,(unsigned   char   *)time,&dwLength)==ERROR_SUCCESS)       //1  
    {  
        .......      
    }  
  lpValueName=“ddd”;  
  if(RegQueryValueEx(hKey,lpValueName,NULL,&dwType,(unsigned   char   *)time,&dwLength)==ERROR_SUCCESS)//2  
    {  
        .......      
    }  
  }  
  两次查询的lpValueName不同。 第一次查询能成功,而第二次就出错了,分开测试都是通过,正确的?  
  请高手指教 问题点数:20、回复次数:7Top

1 楼lixiaosan(小三)回复于 2004-09-01 16:03:13 得分 15

LPBYTE   time1   =   new   BYTE[100];  
  LPBYTE   time2   =   new   BYTE[100];  
   
  if(RegQueryValueEx(hKey,lpValueName,NULL,&dwType,time1   ,&dwLength)==ERROR_SUCCESS)       //1  
   
  if(RegQueryValueEx(hKey,lpValueName,NULL,&dwType,time2,&dwLength)==ERROR_SUCCESS)       //1  
   
  delete[]   time1;  
  delete[]   time2;  
   
  Top

2 楼zhushizu(从来就没有救世祖)回复于 2004-09-01 17:48:36 得分 0

这个问题对我这个菜鸟级的人来说还是难了一点点,不过还是要帮楼主顶一下...因为菜鸟也想知道答案....关注中!Top

3 楼lengxue129(ying)回复于 2004-09-02 09:36:03 得分 0

谢谢   lixiaosan!!!  
  还有个问题就是昨天我也是用你的这个方法。只不过我把变量是如下声名的,就出现上述问题。  
  LPBYTE   time1   =   new   BYTE[100];  
  if(RegOpenKeyEx(HKEY_CURRENT_USER,lpSubKey,0,KEY_ALL_ACCESS,&hKey)==ERROR_SUCCESS)  
  {  
  if(RegQueryValueEx(hKey,lpValueName,NULL,&dwType,time1   ,&dwLength)==ERROR_SUCCESS)        
  ......  
   
  }  
  if(RegOpenKeyEx(HKEY_CURRENT_USER,lpSubKey,0,KEY_ALL_ACCESS,&hKey)==ERROR_SUCCESS)  
  {  
    LPBYTE   time2   =   new   BYTE[100];//---------  
  if(RegQueryValueEx(hKey,lpValueName,NULL,&dwType,time2   ,&dwLength)==ERROR_SUCCESS)        
  ......  
   
  }这样就不行了。  
   
  Top

4 楼lixiaosan(小三)回复于 2004-09-02 10:10:19 得分 0

LPBYTE   time1   =   new   BYTE[100];  
  if(RegOpenKeyEx(HKEY_CURRENT_USER,lpSubKey,0,KEY_ALL_ACCESS,&hKey)==ERROR_SUCCESS)  
  {  
  if(RegQueryValueEx(hKey,lpValueName,NULL,&dwType,time1   ,&dwLength)==ERROR_SUCCESS)        
  ......  
   
  }  
   
  RegCloseKey(hKey);  
   
  if(RegOpenKeyEx(HKEY_CURRENT_USER,lpSubKey,0,KEY_ALL_ACCESS,&hKey)==ERROR_SUCCESS)  
  {  
    LPBYTE   time2   =   new   BYTE[100];//---------  
  if(RegQueryValueEx(hKey,lpValueName,NULL,&dwType,time2   ,&dwLength)==ERROR_SUCCESS)        
  ......  
   
  }这样就不行了。Top

5 楼crystal521(【云淡风轻】)回复于 2004-09-02 10:57:43 得分 0

upTop

6 楼allenq(黑夜给我黑的眼, 我却用他来翻白眼..........)回复于 2004-09-02 11:02:47 得分 5

第二次查询前,应该对变量重新初始化一下  
  memset(   time,0,   sizeof(time));  
  dwLength   =   4096;  
  因为第一次查询时,   这些值已经产生了变化Top

7 楼lengxue129(ying)回复于 2004-09-03 10:35:27 得分 0

谢谢!!Top

相关问题

  • 操作注册表?
  • 操作注册表
  • 注册表操作
  • 注册表操作
  • 注册表恢复!急!急!
  • 注册表问题!急急!!
  • vb.net 注册表操作又遇到难题,求各为高手帮帮看看......
  • 如何操作注册表?
  • C#的注册表操作
  • delphi中操作注册表

关键词

  • 查询
  • access
  • null
  • lpvaluename
  • dwlength
  • dwtype
  • regqueryvalueex
  • hkey
  • lpsubkey
  • success

得分解答快速导航

  • 帖主:lengxue129
  • lixiaosan
  • allenq

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo