头文件 
#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) 什么办法都试了,还是不行! 
请各位高手赐教