关于读注册表的字符串问题,怪!怪!怪!怪!
rchgq 2006-12-08 04:48:47 CString tmpstring;
HKEY hKEY;//定义有关的hKEY,在查询结束时要关闭
//打开与路径 data_Set相关的hKEY
LPCTSTR data_Set=_T("Software\\Samhe\\MouseDrv");
//访问注册表,hKEY则保存此函数所打开的键的句柄
long ret0=(::RegOpenKeyEx(HKEY_CURRENT_USER,data_Set,0,KEY_READ,&hKEY));
if(ret0!=ERROR_SUCCESS)//如果无法打开hKEY,则中止程序的执行
{
TRACE("错误:无法打开有关的hKEY");
}
//查询有关的数据
BYTE owner_Get[256];//定义用户姓名 owner_Get
DWORD type_1=REG_SZ;//定义数据类型
DWORD cbData_1=256;//定义数据长度
long ret1=::RegQueryValueEx(hKEY,_T("LogoPath"),NULL,&type_1,(LPBYTE)owner_Get,&cbData_1);
if(ret1!=ERROR_SUCCESS)
{
TRACE("错误:无法查询有关的注册表信息");
}
tmpstring=owner_Get;
return tmpstring;
可以查到owner_Get数组里面的内容,比如我的值是"E:\ControlPanel_Code\RES\bitmap15.bmp",但owner_Get数组里面owner_Get[0]='E',owner_Get[1]=0,owner_Get[2]=':',owner_Get[3]=0,owner_Get[4]='\',owner_Get[5]=0......
它每隔一个字节都出现一个零,最后当我tmpstring=owner_Get时,tmpstring为"E",怎么会这样呢?