头文件
#ifndef _MYREGKEY_H
#define _MYREGKEY_H #include "winreg.h" class CMyRegKey
{
//contruction
public:
CMyRegKey();
virtual ~CMyRegKey();
//attributes
public:
//定义打开和关闭注册表的成员函数
LONG RegOpen(HKEY hKeyRoot, LPCTSTR pszPath);
void RegClose();
//利用函数重载实现对注册表键值(串值,二进制值,DWORD值)的读和写
LONG RegRead(LPCTSTR pszKey, DWORD& dwVal);
LONG RegRead(LPCTSTR pszKey, CString& sVal);
LONG RegRead(LPCTSTR pszKey, BYTE* pData, DWORD& dwLength);
LONG RegWrite(LPCTSTR pszKey, DWORD dwVal);
LONG RegWrite(LPCTSTR pszKey, LPCTSTR pszVal);
LONG RegWrite(LPCTSTR pszKey, const BYTE* pData, DWORD dwLength);
protected:
HKEY m_hKey;
CString m_sPath;
}; #endif 执行文件
//////////////////////////////////////////////////////////////////////////////
////////////
/// CMyRegKey
//////////////////////////////////////////////////////////////////////////////
////////////
// #include "MyRegKey.h" CMyRegKey::CMyRegKey()
{
m_hKey=NULL;
} CMyRegKey::~CMyRegKey()
{
RegClose();
} //定义打开注册表的函数,RegOpen函数带有两个参数。指定要访问注册表根节点的HKEY,
以及注册表信息的全路径。
//如果给入的路径不存在,则需要创建一个新路径、从RegCreateKeyEx API函数返回的HK
EY作为m_hKey存储。 LONG CMyRegKey::RegOpen(HKEY hKeyRoot, LPCTSTR pszPath)
{
DWORD dw;
m_sPath=pszPath;
return RegCreateKeyEx(hKeyRoot, pszPath, 0L, NULL, REG_OPTION_VOLATILE, KE
Y_ALL_ACCESS, NULL, &m_hKey, &dw);
} void CMyRegKey::RegClose()
{
if(m_hKey)
{
RegCloseKey(m_hKey);
m_hKey=NULL;
}
} LONG CMyRegKey::RegWrite(LPCTSTR pszKey, DWORD dwVal)
{
ASSERT(m_hKey);
ASSERT(pszKey);
ASSERT(pData && dwLength>0);
ASSERT(AfxIsValidAddress(pData, dwLength, FALSE));
return RegSetValueEx(m_hKey, pszKey, 0L, REG_DWORD, (CONST BYTE*) &dwVal,
sizeof(DWORD));
} LONG CMyRegKey::RegWrite(LPCTSTR pszKey, LPCTSTR pszData)
{
ASSERT(m_hKey);
ASSERT(pszKey);
ASSERT(pszData);
ASSERT(pData && dwLength>0);
ASSERT(AfxIsValidAddress(pszData, strlen(pszData), FALSE));
return RegSetValueEx(m_hKey, pszKey, 0L, REG_SZ, (CONST BYTE*) pszData, st
rlen(pszData)+1);
} LONG CMyRegKey::RegWrite(LPCTSTR pszKey, const BYTE* pData, DWORD dwLength)
{
ASSERT(m_hKey);
ASSERT(pszKey);
ASSER(AfxIsValidAddress(pData, dwLength, FALSE));
ASSERT(pData && dwLength>0);
ASSER(AfxIsValidAddress(pData, dwLength, FALSE));
return RegSetValueEx(m_hKey, pszKey, 0L, REG_BINARY, pData, dwLength);
} LONG CMyRegKey::RegRead(LPCTSTR pszKey, DWORD& dwVal)
{
ASSERT(m_hKey);
ASSERT(pszKey);
DWORD dwType;
DWORD dwSize=sizeof(DWORD);
DWORD dwDest;
LONG LRet=RegQueryValueEx(m_hKey, (LPSTR) pszKey, NULL, &dwType, (BYTE*)&d
wDest, &dwSize);
if(LRet==ERROR_SUCCESS)
dwVal=dwDest;
return LRet;
} LONG CMyRegKey::RegRead(LPCTSTR pszKey, CString& sVal)
{
ASSERT(m_hKey);
ASSERT(pszKey);
DWORD dwType;
DWORD dwSize=200;
char string[200];
LONG lReturn=RegQueryValueEx(m_hKey, (LPSTR)pszKey, NULL, &dwType, (BYTE*)
string, &dwSize);
sVal=string;
return lReturn;
} LONG CMyRegKey::RegRead(LPCTSTR pszKey, BYTE* pData, DWORD& dwLen)
{
ASSERT(m_hKey);
ASSERT(pszKey);
DWORD dwType;
return RegQueryValueEx(m_hKey, (LPSTR)pszKey, NULL, &dwType, pData, &dwLen
);
} 编译后总是提示
--------------------Configuration: T_IsHtml - Win32 Debug-------------------- Compiling...
MyRegKey.cpp
c:\program files\microsoft visual studio\myprojects\t_ishtml\myregkey.cpp(98)
: fatal error C1010: unexpected end of file while looking for precompiled head
er directive
Error executing cl.exe. T_IsHtml.exe - 1 error(s), 0 warning(s) 什么办法都试了,还是不行!
请各位高手赐教
#ifndef _MYREGKEY_H
#define _MYREGKEY_H #include "winreg.h" class CMyRegKey
{
//contruction
public:
CMyRegKey();
virtual ~CMyRegKey();
//attributes
public:
//定义打开和关闭注册表的成员函数
LONG RegOpen(HKEY hKeyRoot, LPCTSTR pszPath);
void RegClose();
//利用函数重载实现对注册表键值(串值,二进制值,DWORD值)的读和写
LONG RegRead(LPCTSTR pszKey, DWORD& dwVal);
LONG RegRead(LPCTSTR pszKey, CString& sVal);
LONG RegRead(LPCTSTR pszKey, BYTE* pData, DWORD& dwLength);
LONG RegWrite(LPCTSTR pszKey, DWORD dwVal);
LONG RegWrite(LPCTSTR pszKey, LPCTSTR pszVal);
LONG RegWrite(LPCTSTR pszKey, const BYTE* pData, DWORD dwLength);
protected:
HKEY m_hKey;
CString m_sPath;
}; #endif 执行文件
//////////////////////////////////////////////////////////////////////////////
////////////
/// CMyRegKey
//////////////////////////////////////////////////////////////////////////////
////////////
// #include "MyRegKey.h" CMyRegKey::CMyRegKey()
{
m_hKey=NULL;
} CMyRegKey::~CMyRegKey()
{
RegClose();
} //定义打开注册表的函数,RegOpen函数带有两个参数。指定要访问注册表根节点的HKEY,
以及注册表信息的全路径。
//如果给入的路径不存在,则需要创建一个新路径、从RegCreateKeyEx API函数返回的HK
EY作为m_hKey存储。 LONG CMyRegKey::RegOpen(HKEY hKeyRoot, LPCTSTR pszPath)
{
DWORD dw;
m_sPath=pszPath;
return RegCreateKeyEx(hKeyRoot, pszPath, 0L, NULL, REG_OPTION_VOLATILE, KE
Y_ALL_ACCESS, NULL, &m_hKey, &dw);
} void CMyRegKey::RegClose()
{
if(m_hKey)
{
RegCloseKey(m_hKey);
m_hKey=NULL;
}
} LONG CMyRegKey::RegWrite(LPCTSTR pszKey, DWORD dwVal)
{
ASSERT(m_hKey);
ASSERT(pszKey);
ASSERT(pData && dwLength>0);
ASSERT(AfxIsValidAddress(pData, dwLength, FALSE));
return RegSetValueEx(m_hKey, pszKey, 0L, REG_DWORD, (CONST BYTE*) &dwVal,
sizeof(DWORD));
} LONG CMyRegKey::RegWrite(LPCTSTR pszKey, LPCTSTR pszData)
{
ASSERT(m_hKey);
ASSERT(pszKey);
ASSERT(pszData);
ASSERT(pData && dwLength>0);
ASSERT(AfxIsValidAddress(pszData, strlen(pszData), FALSE));
return RegSetValueEx(m_hKey, pszKey, 0L, REG_SZ, (CONST BYTE*) pszData, st
rlen(pszData)+1);
} LONG CMyRegKey::RegWrite(LPCTSTR pszKey, const BYTE* pData, DWORD dwLength)
{
ASSERT(m_hKey);
ASSERT(pszKey);
ASSER(AfxIsValidAddress(pData, dwLength, FALSE));
ASSERT(pData && dwLength>0);
ASSER(AfxIsValidAddress(pData, dwLength, FALSE));
return RegSetValueEx(m_hKey, pszKey, 0L, REG_BINARY, pData, dwLength);
} LONG CMyRegKey::RegRead(LPCTSTR pszKey, DWORD& dwVal)
{
ASSERT(m_hKey);
ASSERT(pszKey);
DWORD dwType;
DWORD dwSize=sizeof(DWORD);
DWORD dwDest;
LONG LRet=RegQueryValueEx(m_hKey, (LPSTR) pszKey, NULL, &dwType, (BYTE*)&d
wDest, &dwSize);
if(LRet==ERROR_SUCCESS)
dwVal=dwDest;
return LRet;
} LONG CMyRegKey::RegRead(LPCTSTR pszKey, CString& sVal)
{
ASSERT(m_hKey);
ASSERT(pszKey);
DWORD dwType;
DWORD dwSize=200;
char string[200];
LONG lReturn=RegQueryValueEx(m_hKey, (LPSTR)pszKey, NULL, &dwType, (BYTE*)
string, &dwSize);
sVal=string;
return lReturn;
} LONG CMyRegKey::RegRead(LPCTSTR pszKey, BYTE* pData, DWORD& dwLen)
{
ASSERT(m_hKey);
ASSERT(pszKey);
DWORD dwType;
return RegQueryValueEx(m_hKey, (LPSTR)pszKey, NULL, &dwType, pData, &dwLen
);
} 编译后总是提示
--------------------Configuration: T_IsHtml - Win32 Debug-------------------- Compiling...
MyRegKey.cpp
c:\program files\microsoft visual studio\myprojects\t_ishtml\myregkey.cpp(98)
: fatal error C1010: unexpected end of file while looking for precompiled head
er directive
Error executing cl.exe. T_IsHtml.exe - 1 error(s), 0 warning(s) 什么办法都试了,还是不行!
请各位高手赐教
解决方案 »
- 如何用xml读写一个二进制的bin文件?
- 很老的问题,关于CString数组赋值的错误,路过帮看下,前辈说没见过这种用法,想请大家指导下,新人,谢谢了
- Telnet 客户端 能否控制服务端不回显?怎么实现?最好有例程。
- 向大侠问一个问题,,何为钩子函数,,是不是在将窗口的预定义接收消息的窗口过程A 转移到另一个窗口过程 B....
- MFC程序的显示主窗口的代码究竟在哪里?
- 500分(续贴)
- 学习编写浏览器的插件技术,该看那一类的书?
- new与delete使用的问题
- 视频快照,保存picture控件图片
- 无法识别自定义类!!!!
- 怎样实现分页打印?
- 高分请教AFX_MANAGE_STATE(AfxGetStaticModuleState( ))问题?!!!!
你在cpp文件的最上面加上 #include "stdafx.h" 试试看,如果不想加的话在“project setting”->“C/C++”->“Category”中选中“Precompiled Headers”,选择“Not using precompiled headers”