帮帮忙看看这段代码错在那了?
以下这段代码每次运行时都会显示“读取数据失败”,我实在是看不出究竟哪有问题,帮我解决一下。谢谢!
BOOL CClockApp::IsInstalled()
{
BOOL bInstalled = FALSE;
DWORD dwDisposition;
HKEY m_hKey;
//打开注册表
LONG ret = RegCreateKeyEx (HKEY_LOCAL_MACHINE, "SOFTWARE\\TimeLimit", 0L, NULL,
REG_OPTION_VOLATILE, KEY_ALL_ACCESS, NULL, &m_hKey, &dwDisposition);
if (ret != ERROR_SUCCESS) //打开注册表失败
return FALSE;
//从注册表中读入特征值
DWORD dwVal,dwType,dwLen;
ret = RegQueryValueEx(m_hKey,"Installed",NULL,&dwType,(unsigned char*)&dwVal,&dwLen);
if (ret != ERROR_SUCCESS) //读取数据失败
{
AfxMessageBox("读取数据失败");
return FALSE;
}
//检查读到的特征值是否为1,如果是,则表明软件以前已运行过
bInstalled = (dwVal == 1);
//关闭注册表
RegCloseKey(m_hKey);
return bInstalled;
}
问题点数:0、回复次数:7Top
1 楼Hawk_lp(流浪者)回复于 2003-01-03 02:19:54 得分 0
Up!Top
2 楼fasthorse(快马)回复于 2003-01-03 03:29:24 得分 0
看看是否有权限限制!Top
3 楼talcon_hu()回复于 2003-01-03 07:56:13 得分 0
看返回直是否ERROR_MORE_DATA,如果是,请初始化dwLen = 256Top
4 楼liugy(不知道的太多)回复于 2003-01-03 08:09:19 得分 0
你查过 installed键值已经存在于注册表?
Top
5 楼ripyu(抢分的恶狼)回复于 2003-01-03 09:40:08 得分 0
先debug一下ERROR_MORE_DATA的value,然后再采取对策Top
6 楼shantian(田田)回复于 2003-01-03 10:08:55 得分 0
upTop
7 楼hthuguangming(huguangming)回复于 2003-01-03 10:27:43 得分 0
RegQueryValueEx(m_hKey,"Installed",NULL,&dwType,(unsigned char*)&dwVal,&dwLen);
的参数用得不对先把dwType=SZ_DWORD 或REG_BINARY
dwLen必须初始化Top




