我写的代码如下,但是结果显示的是烫烫烫
HKEY key;
DWORD result;
char subkey[]="SOFTWARE\\Microsoft\\Microsoft SQL Server\\Instance Names\\SQL";
char path[ 2048 ];
DWORD keyType = REG_SZ;
DWORD DataLen = 200;
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,subkey, 0, KEY_READ,&key)==ERROR_SUCCESS)
{  unsigned char getValue[200];
if(RegQueryValueEx(key,"name",NULL,&keyType,getValue,&DataLen))
{
CString value=CString(getValue);
AfxMessageBox(value);}
    
} 不知道哪里错了

解决方案 »

  1.   

    看一下RegQueryValueEx的说明
    http://baike.baidu.com/view/1293857.htm
    返回0表示成功
    你这么写如果进入if语句那就是失败了
      

  2.   

    和你前面那个if一样写就好了啊ERROR_SUCCESS是等于0的
      

  3.   


    嗯,我知道返回零表示成功。可是改成这样了还是不行
    HKEY key;
    DWORD result;
     char subkey[]="SOFTWARE\\Microsoft\\Microsoft SQL Server\\Instance Names\\SQL";
    char path[ 2048 ];
    if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,subkey, 0,  KEY_READ,&key)==ERROR_SUCCESS)


    DWORD keyType = REG_SZ;
    unsigned char getValue[200];
    DWORD DataLen = 200;
    long ret;
    if(!(ret=RegQueryValueEx(key,"name",NULL,&keyType,getValue,&DataLen)))
    {
    CString value=CString(getValue);
    AfxMessageBox(value);

    }
        else
    {
    CString x;
    x.Format("%ld",ret);
    AfxMessageBox(x);
    }}
    else
    MessageBox( "错误:   无法打开有关的hKEY! ");
    最后显示x是2
      

  4.   

    显示2说明没有这个项
    你确定这个位置有一个角name的项么
    打开注册表看看不就知道了