![]() |
购物专题 | 基金专题 | 性专题 | 饮食专题 | 教育专题 | 生活大参考 | 园林资讯 | 园艺库 | 健康专题 | |
| 论文专题 | 家庭养花 | 园林景观 | 盆景奇石 | 激情图库 | 农业资料库 | 园林古建 | 英文站 | 花卉栽培 |
HKEY hkey;
BOOL bFromNotes=FALSE;
::RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\ZXCTC\\UserManager",0,KEY_ALL_ACCESS,
&hkey);
LPBYTE szContractID=new BYTE[80];
LPBYTE szApprovePerson=new BYTE[80];
LPBYTE szMaterialQuery=new BYTE[80];
DWORD dwValueType=REG_SZ;
DWORD dwValueLen=80;
strcpy((LPSTR)szApprovePerson,"");
strcpy((LPSTR)szContractID,"");
strcpy((LPSTR)szMaterialQuery,"");
::RegQueryValueEx(hkey,"MaterialQuery",NULL,&dwValueType,szMaterialQuery,
&dwValueLen); //只能查询出"MaterialQuery"的值,后面两个都查不出,为什么??
::RegQueryValueEx(hkey,"ApprovePerson",NULL,&dwValueType,szApprovePerson,
&dwValueLen);
::RegQueryValueEx(hkey,"ContractID",NULL,&dwValueType,szContractID,
&dwValueLen);
::RegSetValueEx(hkey,"ApprovePerson",NULL,dwValueType,(LPBYTE)"",(DWORD)0);
::RegSetValueEx(hkey,"ContractID",NULL,dwValueType,(LPBYTE)"",(DWORD)0);
::RegSetValueEx(hkey,"MaterialQuery",NULL,dwValueType,(LPBYTE)"",(DWORD)0);
::RegCloseKey(hkey);
---------------------------------------------------------------
这个问题很可能是因为您调用了RegQueryValueEx之后,没有恢复接收数据的缓冲区的大小所导致的。RegQueryValueEx函数的原型如下:
LONG RegQueryValueEx(
HKEY hKey, // handle to key
LPCTSTR lpValueName, // value name
LPDWORD lpReserved, // reserved
LPDWORD lpType, // type buffer
LPBYTE lpData, // data buffer
LPDWORD lpcbData // size of data buffer
);
其中最后一个参数是输入输出型的,输入时表示接受数据的缓冲区的大小,当该函数返回时,该值包含了复制到缓冲区的数据的大小。而当缓冲区的大小不能容纳要获取的数据时,该函数返回ERROR_MORE_DATA并在lpcbData中存放了实际需要的缓冲区的大小(字节数)。
建议您在每次调用之前恢复原先的缓冲区的大小,问题应该就解决了。
例如:
::RegQueryValueEx(hkey,"MaterialQuery",NULL,&dwValueType,szMaterialQuery,
&dwValueLen);
dwValueLen = 80;
::RegQueryValueEx(hkey,"ApprovePerson",NULL,&dwValueType,szApprovePerson,
&dwValueLen);
dwValueLen = 80;
::RegQueryValueEx(hkey,"ContractID",NULL,&dwValueType,szContractID,
&dwValueLen);
如果需要进一步的信息,您可以参看:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/regapi_3wzc.asp等有关的MSDN信息
- 微软全球技术中心 VC技术支持
本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款
(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查
(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=
(S,49854782))。
浙ICP备 :07003766号 Copyright © 2001-2007 JUBAO163,All rights reserved. |