void CVCCodeDlg::OnButton2() 
{
// TODO: Add your control notification handler code here
CRegKey reg;
reg.Open (HKEY_CURRENT_USER,"SOFTWARE\\WEBZEN\\MU\\CONFIG");
//写值
reg.SetValue(1,"SoundOnOff"); //DWORD  修改键值
AfxMessageBox("OK");

}向SoundOnOff写其他可以..我想写0怎么就有下面的错误提示:C:\WINDOWS\Desktop\VCCode\VCCode\VCCodeDlg.cpp(200) : error C2668: 'SetValue' : ambiguous call to overloaded function
Error executing cl.exe.帮帮菜鸟吧.....谢谢

解决方案 »

  1.   

    看看你的CREGKEY出了什么问题??
      

  2.   

    SetValue的参数错了吧,第一个参数是值的名称,第二个是数据,你写反了
      

  3.   

    确实是写反了参数
    LONG SetValue(
       LPCTSTR pszValueName,
       DWORD dwType,
       const void* pValue,
       ULONG nBytes 
    )
      

  4.   

    不会吧..那我用reg.SetValue(1,"SoundOnOff"); 或reg.SetValue(2,"SoundOnOff")...都可以怎么用reg.SetValue(0,"SoundOnOff");就不行啊?
      

  5.   

    reg.SetValue("SoundOnOff",0);这样编译没有问题不过数据没有改到.
      

  6.   

    改成:
    reg.SetValue(DWORD(0),"Mail Column"); //DWORD  修改键值
    就没有问题了。
    因为该函数有3个重载(看看MSDN),其中前两个的第一个参数一个是DWORD型,一个是LPCTSTR型。你把0传进去,0既可以是DWORD,又可以是LPCTSTR(此时就是空指针),编译器就傻了,不知道要调用哪一个了,呵呵。
      

  7.   

    呵呵,有点粗心,把参数改了没给你改回来,"Mail Column"改成"SoundOnOff",特此声明。