在VC6里运行没有有关问题,但是在VS2012里面运行就不行(有代码)

在VC6里运行没有问题,但是在VS2012里面运行就不行(有代码)
void CRevealREGDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
HKEY hKey;
DWORD value= 0;
CString subkey="Control Panel\\Keyboard";
::RegCreateKey(HKEY_CURRENT_USER,subkey,&hKey);
::RegSetValueEx(hkey,"KeyboardDelay",NULL,REG_SZ,(BYTE*)&value,sizeof(Dword));
::RegCloseKey(hKey);
MessageBox("修改成功");
}

在VC6里运行没有问题,可以正常使用
 但是在VS2012里面运行就不行

 下面是错误代码:
1>------ 已启动生成: 项目: RevealREG, 配置: Debug Win32 ------
1>  stdafx.cpp
 1>  RevealREGDlg.cpp
 1>d:\vs c++\revealreg\revealreg\revealregdlg.cpp(161): error C2440: “初始化”: 无法从“const char [23]”转换为“ATL::CStringT<BaseType,StringTraits>”
1>          with
 1>          [
 1>              BaseType=wchar_t,
 1>              StringTraits=StrTraitMFC_DLL<wchar_t>
 1>          ]
 1>          class“ATL::CStringT<BaseType,StringTraits>”的构造函数声明为“explicit”
1>          with
 1>          [
 1>              BaseType=wchar_t,
 1>              StringTraits=StrTraitMFC_DLL<wchar_t>
 1>          ]
 1>d:\vs c++\revealreg\revealreg\revealregdlg.cpp(163): error C2065: “hkey”: 未声明的标识符
1>d:\vs c++\revealreg\revealreg\revealregdlg.cpp(163): error C2065: “Dword”: 未声明的标识符
1>d:\vs c++\revealreg\revealreg\revealregdlg.cpp(163): error C2070: “'unknown-type'”: 非法的 sizeof 操作数
1>d:\vs c++\revealreg\revealreg\revealregdlg.cpp(165): error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [9]”转换为“LPCTSTR”
1>          与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>  RevealREG.cpp
 1>  正在生成代码...
 ========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
请帮忙纠正一下,到底是一个什么问题?我该如何写才能在VS2012里运行并生成程序成功?
------解决方案--------------------
VC6中的双引号串到了VS里    _T("Control Panel\\Keyboard");
Dword --- DWORD
------解决方案--------------------
我最近也遇到过这种情况,至于错误里面的未声明标识符咱们就不提了,楼主自己改过来,关键在于“不能将参数 1 从“const char [9]”转换为“LPCTSTR””这个错误,在项目属性里面找到项目默认值下面的字符集, 将其换为使用多字节字符集就可以解决这个问题了。