首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

VS2005查询注册表的有关问题

2012-02-16 
VS2005查询注册表的问题void CRegeditDlg::OnBnClickedQuery(){// TODO: 在此添加控件通知处理程序代码Upd

VS2005查询注册表的问题
void CRegeditDlg::OnBnClickedQuery()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(true);
HKEY hKEY;
LPCTSTR data_Set=TEXT("Software\\Microsoft\\Windows NT\\CurrentVersion\\");//打开与路径 data_Set相关的hKEY
long reg0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_READ,&hKEY));//访问注册表,hKEY则保存此函数所打开的键的句柄
if(reg0!=ERROR_SUCCESS)//如果无法打开hKEY,则中止程序的执行
{
MessageBox("错误:无法打开有关的hKey","ERROR",0);
return;
}

//查询有关的数据
LPBYTE owner_Get=new BYTE[80];//定义公司名称 company_Get
DWORD type_1=REG_SZ;//定义数据类型
DWORD cbData_1=8192;//定义数据长度

long ret1=::RegQueryValueEx(hKEY,TEXT("RegisteredOwner"),NULL,NULL,(LPBYTE )owner_Get,&cbData_1);
if(ret1!=ERROR_SUCCESS)
{
MessageBox("错误,无法查询有关的注册信息","ERROR",0);
return;
}

//查询公司名;
LPBYTE company_Get=new BYTE[80];
DWORD type_2=REG_SZ;
DWORD cbData_2=80;

long ret2=::RegQueryValueEx(hKEY,TEXT("RegisteredOrganization"),NULL,&type_2,company_Get,&cbData_2);
if(ret2!=ERROR_SUCCESS)
{
MessageBox("错误,无法查询到有关的注册信息","ERROR",0);
return;
}

//显示信息
m_strOwner=CString(owner_Get);
m_Company=CString(company_Get);
//delete[] owner_Get;
delete[] company_Get;

//程序结束,关闭打开的hKEY;
::RegCloseKey(hKEY);
UpdateData(false);
}

这个在VS2003下正常,但是在VS2005下为什么返回的结果为查询到的实际结果的 第一个字母呢???

[解决办法]
第一个字母呢??

编译选项指定了unicode?

热点排行