﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Ping.Po</title><link>http://www.cppblog.com/pingpo/</link><description>学而不思则罔，思而不学则殆。</description><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 08:43:43 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 08:43:43 GMT</pubDate><ttl>60</ttl><item><title>把注册表操作API简单封装成一个类</title><link>http://www.cppblog.com/pingpo/archive/2009/02/05/73068.html</link><dc:creator>PingPo</dc:creator><author>PingPo</author><pubDate>Thu, 05 Feb 2009 13:22:00 GMT</pubDate><guid>http://www.cppblog.com/pingpo/archive/2009/02/05/73068.html</guid><wfw:comment>http://www.cppblog.com/pingpo/comments/73068.html</wfw:comment><comments>http://www.cppblog.com/pingpo/archive/2009/02/05/73068.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/pingpo/comments/commentRss/73068.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/pingpo/services/trackbacks/73068.html</trackback:ping><description><![CDATA[



<div><div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080; ">&#160;1</span>&#160;<span style="color: #008000; ">//</span><span style="color: #008000; ">&#160;头文件<br></span><span style="color: #008080; ">&#160;2</span>&#160;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&#160;PpCRegistry.h:&#160;interface&#160;for&#160;the&#160;PpCRegistry&#160;class.<br></span><span style="color: #008080; ">&#160;3</span>&#160;<span style="color: #008000; "></span><span style="color: #008000; ">//<br></span><span style="color: #008080; ">&#160;4</span>&#160;<span style="color: #008000; "></span><span style="color: #808080; ">/////////////////////////////////////////////////////////////////////</span><span style="color: #008000; ">/</span><span style="color: #808080; "><br></span><span style="color: #008080; ">&#160;5</span>&#160;<span style="color: #808080; "></span><span style="color: #0000FF; ">#if</span><span style="color: #000000; ">&#160;!defined(AFX_PPCREGISTRY_H__05F5A27D_850A_42C6_A919_22DB976E8978__INCLUDED_)</span><span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;6</span>&#160;<span style="color: #000000; "></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; ">&#160;AFX_PPCREGISTRY_H__05F5A27D_850A_42C6_A919_22DB976E8978__INCLUDED_</span><span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;7</span>&#160;<span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;8</span>&#160;<span style="color: #000000; "></span><span style="color: #0000FF; ">#if</span><span style="color: #000000; ">&#160;_MSC_VER&#160;>&#160;1000</span><span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;9</span>&#160;<span style="color: #000000; ">#pragma&#160;once<br></span><span style="color: #008080; ">10</span>&#160;<span style="color: #000000; "></span><span style="color: #0000FF; ">#endif</span><span style="color: #000000; ">&#160;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&#160;_MSC_VER&#160;>&#160;1000</span><span style="color: #000000; "><br></span><span style="color: #008080; ">11</span>&#160;<span style="color: #000000; "><br></span><span style="color: #008080; ">12</span>&#160;<span style="color: #000000; "></span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&#160;PpCRegistry&#160;&#160;<br></span><span style="color: #008080; ">13</span>&#160;<span style="color: #000000; ">{<br></span><span style="color: #008080; ">14</span>&#160;<span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br></span><span style="color: #008080; ">15</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;PpCRegistry(HKEY&#160;hKey</span><span style="color: #000000; ">=</span><span style="color: #000000; ">HKEY_LOCAL_MACHINE);&#160;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&#160;默认构造函数</span><span style="color: #008000; "><br></span><span style="color: #008080; ">16</span>&#160;<span style="color: #008000; "></span><span style="color: #000000; ">&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">virtual</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">~</span><span style="color: #000000; ">PpCRegistry();<br></span><span style="color: #008080; ">17</span>&#160;<span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br></span><span style="color: #008080; ">18</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;BOOL&#160;ppCreateRegKey(LPCTSTR&#160;lpSubKey,PHKEY&#160;phkResult</span><span style="color: #000000; ">=</span><span style="color: #000000; ">NULL);&#160;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">phkResult&#160;参数现在没用到。创建RegKey</span><span style="color: #008000; "><br></span><span style="color: #008080; ">19</span>&#160;<span style="color: #008000; "></span><span style="color: #000000; ">&#160;&#160;&#160;&#160;BOOL&#160;ppRegOpenKey(LPCTSTR&#160;lpSubKey,PHKEY&#160;phkResult</span><span style="color: #000000; ">=</span><span style="color: #000000; ">NULL);&#160;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&#160;phkResult&#160;参数现在没用到。&#160;打开RegKey</span><span style="color: #008000; "><br></span><span style="color: #008080; ">20</span>&#160;<span style="color: #008000; "></span><span style="color: #000000; ">&#160;&#160;&#160;&#160;BOOL&#160;ppRegSetValue(LPCTSTR&#160;lpValueName,DWORD&#160;dwType,LPCTSTR&#160;lpValue);&#160;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&#160;写入注册表</span><span style="color: #008000; "><br></span><span style="color: #008080; ">21</span>&#160;<span style="color: #008000; "></span><span style="color: #000000; ">&#160;&#160;&#160;&#160;BOOL&#160;ppRegQueryValue(LPCTSTR&#160;lpValueName,LPCTSTR&#160;lpValue,LPDWORD&#160;lpcbData,LPDWORD&#160;lpType</span><span style="color: #000000; ">=</span><span style="color: #000000; ">NULL);&#160;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&#160;从注册表中读取数据</span><span style="color: #008000; "><br></span><span style="color: #008080; ">22</span>&#160;<span style="color: #008000; "></span><span style="color: #000000; ">&#160;&#160;&#160;&#160;BOOL&#160;ppRegDeleteValue(LPCTSTR&#160;lpValueName);&#160;&#160;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&#160;删除注册表的某个值</span><span style="color: #008000; "><br></span><span style="color: #008080; ">23</span>&#160;<span style="color: #008000; "></span><span style="color: #000000; ">&#160;&#160;&#160;&#160;BOOL&#160;ppRegCloseKey();&#160;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&#160;关闭注册表&#160;</span><span style="color: #008000; "><br></span><span style="color: #008080; ">24</span>&#160;<span style="color: #008000; "></span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">:<br></span><span style="color: #008080; ">25</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;HKEY&#160;m_key;&#160;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&#160;hkey</span><span style="color: #008000; "><br></span><span style="color: #008080; ">26 }</span></div></div></div><div><div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><span style="color: #008080; "><div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><span style="color: #000000; "></span></div></span>&#160;<span style="color: #008000; ">//</span><span style="color: #008000; ">&#160;PpCRegistry.cpp:&#160;implementation&#160;of&#160;the&#160;PpCRegistry&#160;class.<br></span><span style="color: #008080; ">&#160;&#160;2</span>&#160;<span style="color: #008000; "></span><span style="color: #008000; ">//<br></span><span style="color: #008080; ">&#160;&#160;3</span>&#160;<span style="color: #008000; "></span><span style="color: #808080; ">/////////////////////////////////////////////////////////////////////</span><span style="color: #008000; ">/</span><span style="color: #808080; "><br></span><span style="color: #008080; ">&#160;&#160;4</span>&#160;<span style="color: #808080; "></span><span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;&#160;5</span>&#160;<span style="color: #000000; ">#include&#160;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">stdafx.h</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;&#160;6</span>&#160;<span style="color: #000000; ">#include&#160;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">RegDemo.h</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;&#160;7</span>&#160;<span style="color: #000000; ">#include&#160;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">PpCRegistry.h</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;&#160;8</span>&#160;<span style="color: #000000; ">#include&#160;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">assert.h</span><span style="color: #000000; ">></span><span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;&#160;9</span>&#160;<span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;10</span>&#160;<span style="color: #000000; ">#ifdef&#160;_DEBUG<br></span><span style="color: #008080; ">&#160;11</span>&#160;<span style="color: #000000; "></span><span style="color: #0000FF; ">#undef</span><span style="color: #000000; ">&#160;THIS_FILE</span><span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;12</span>&#160;<span style="color: #000000; "></span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&#160;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&#160;THIS_FILE[]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">__FILE__;<br></span><span style="color: #008080; ">&#160;13</span>&#160;<span style="color: #000000; "></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; ">&#160;new&#160;DEBUG_NEW</span><span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;14</span>&#160;<span style="color: #000000; "></span><span style="color: #0000FF; ">#endif</span><span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;15</span>&#160;<span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;16</span>&#160;<span style="color: #000000; ">PpCRegistry::PpCRegistry(HKEY&#160;hKey)<br></span><span style="color: #008080; ">&#160;17</span>&#160;<span style="color: #000000; ">{<br></span><span style="color: #008080; ">&#160;18</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">assert(hKey);</span><span style="color: #008000; "><br></span><span style="color: #008080; ">&#160;19</span>&#160;<span style="color: #008000; "></span><span style="color: #000000; ">&#160;&#160;&#160;&#160;m_key&#160;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">hKey;<br></span><span style="color: #008080; ">&#160;20</span>&#160;<span style="color: #000000; ">}<br></span><span style="color: #008080; ">&#160;21</span>&#160;<span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;22</span>&#160;<span style="color: #000000; ">PpCRegistry::</span><span style="color: #000000; ">~</span><span style="color: #000000; ">PpCRegistry()<br></span><span style="color: #008080; ">&#160;23</span>&#160;<span style="color: #000000; ">{<br></span><span style="color: #008080; ">&#160;24</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;<br></span><span style="color: #008080; ">&#160;25</span>&#160;<span style="color: #000000; ">}<br></span><span style="color: #008080; ">&#160;26</span>&#160;<span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;27</span>&#160;<span style="color: #000000; ">BOOL&#160;PpCRegistry::ppCreateRegKey(LPCTSTR&#160;lpSubKey,PHKEY&#160;phkResult)&#160;</span><span style="color: #008000; ">//<br></span><span style="color: #008080; ">&#160;28</span>&#160;<span style="color: #008000; "></span><span style="color: #000000; ">{<br></span><span style="color: #008080; ">&#160;29</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;assert(m_key);<br></span><span style="color: #008080; ">&#160;30</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;assert(lpSubKey);<br></span><span style="color: #008080; ">&#160;31</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;HKEY&#160;tempkey;<br></span><span style="color: #008080; ">&#160;32</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&#160;res</span><span style="color: #000000; ">=</span><span style="color: #000000; ">RegCreateKey(m_key,lpSubKey,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">tempkey);<br></span><span style="color: #008080; ">&#160;33</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&#160;(res</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">ERROR_SUCCESS)<br></span><span style="color: #008080; ">&#160;34</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;{<br></span><span style="color: #008080; ">&#160;35</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;RegCloseKey(m_key);<br></span><span style="color: #008080; ">&#160;36</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&#160;FALSE;<br></span><span style="color: #008080; ">&#160;37</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;}</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;38</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;{<br></span><span style="color: #008080; ">&#160;39</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&#160;&#160;&#160;&#160;m_key&#160;=tempkey;</span><span style="color: #008000; "><br></span><span style="color: #008080; ">&#160;40</span>&#160;<span style="color: #008000; "></span><span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&#160;TRUE;<br></span><span style="color: #008080; ">&#160;41</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;}<br></span><span style="color: #008080; ">&#160;42</span>&#160;<span style="color: #000000; ">}<br></span><span style="color: #008080; ">&#160;43</span>&#160;<span style="color: #000000; ">BOOL&#160;PpCRegistry::ppRegOpenKey(LPCTSTR&#160;lpSubKey,PHKEY&#160;phkResult)<br></span><span style="color: #008080; ">&#160;44</span>&#160;<span style="color: #000000; ">{<br></span><span style="color: #008080; ">&#160;45</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;assert(m_key);<br></span><span style="color: #008080; ">&#160;46</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;assert(lpSubKey);<br></span><span style="color: #008080; ">&#160;47</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;<br></span><span style="color: #008080; ">&#160;48</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;HKEY&#160;tempkey;<br></span><span style="color: #008080; ">&#160;49</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&#160;res&#160;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&#160;RegOpenKey(m_key,lpSubKey,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">tempkey);<br></span><span style="color: #008080; ">&#160;50</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&#160;(res</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">ERROR_SUCCESS)<br></span><span style="color: #008080; ">&#160;51</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;{<br></span><span style="color: #008080; ">&#160;52</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;RegCloseKey(m_key);<br></span><span style="color: #008080; ">&#160;53</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&#160;FALSE;<br></span><span style="color: #008080; ">&#160;54</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;}</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;55</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;{<br></span><span style="color: #008080; ">&#160;56</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;m_key</span><span style="color: #000000; ">=</span><span style="color: #000000; ">tempkey;<br></span><span style="color: #008080; ">&#160;57</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;TRACE(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%0xd\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,m_key);<br></span><span style="color: #008080; ">&#160;58</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&#160;TRUE;<br></span><span style="color: #008080; ">&#160;59</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;}<br></span><span style="color: #008080; ">&#160;60</span>&#160;<span style="color: #000000; ">}<br></span><span style="color: #008080; ">&#160;61</span>&#160;<span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;62</span>&#160;<span style="color: #000000; ">BOOL&#160;PpCRegistry::ppRegSetValue(LPCTSTR&#160;lpValueName,DWORD&#160;dwType,LPCTSTR&#160;lpValue)&#160;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&#160;写入注册表&#160;lpvaluename=NULL&#160;则设置注册表默认值</span><span style="color: #008000; "><br></span><span style="color: #008080; ">&#160;63</span>&#160;<span style="color: #008000; "></span><span style="color: #000000; ">{<br></span><span style="color: #008080; ">&#160;64</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;<br></span><span style="color: #008080; ">&#160;65</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;assert(lpValue);<br></span><span style="color: #008080; ">&#160;66</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&#160;lpValueName&#160;==NULL&#160;修改默认值&#160;的值</span><span style="color: #008000; "><br></span><span style="color: #008080; ">&#160;67</span>&#160;<span style="color: #008000; "></span><span style="color: #000000; ">&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&#160;res</span><span style="color: #000000; ">=</span><span style="color: #000000; ">RegSetValueEx(m_key,lpValueName,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,dwType,(</span><span style="color: #0000FF; ">const</span><span style="color: #000000; ">&#160;unsigned&#160;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)lpValue,strlen(lpValue)</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br></span><span style="color: #008080; ">&#160;68</span>&#160;<span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;69</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&#160;(res</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">ERROR_SUCCESS)<br></span><span style="color: #008080; ">&#160;70</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;{<br></span><span style="color: #008080; ">&#160;71</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&#160;&#160;&#160;&#160;RegCloseKey(m_key);</span><span style="color: #008000; "><br></span><span style="color: #008080; ">&#160;72</span>&#160;<span style="color: #008000; "></span><span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&#160;FALSE;<br></span><span style="color: #008080; ">&#160;73</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;}</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;74</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;{<br></span><span style="color: #008080; ">&#160;75</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;TRACE(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%0xd\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,m_key);<br></span><span style="color: #008080; ">&#160;76</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&#160;TRUE;<br></span><span style="color: #008080; ">&#160;77</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;}<br></span><span style="color: #008080; ">&#160;78</span>&#160;<span style="color: #000000; ">}<br></span><span style="color: #008080; ">&#160;79</span>&#160;<span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;80</span>&#160;<span style="color: #000000; ">BOOL&#160;PpCRegistry::ppRegQueryValue(LPCTSTR&#160;lpValueName,LPCTSTR&#160;lpValue,LPDWORD&#160;lpcbData,LPDWORD&#160;lpType)&#160;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&#160;从注册表中读取数据</span><span style="color: #008000; "><br></span><span style="color: #008080; ">&#160;81</span>&#160;<span style="color: #008000; "></span><span style="color: #000000; ">{<br></span><span style="color: #008080; ">&#160;82</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;assert(lpValueName);<br></span><span style="color: #008080; ">&#160;83</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;assert(lpValue);<br></span><span style="color: #008080; ">&#160;84</span>&#160;<span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;85</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;DWORD&#160;type;<br></span><span style="color: #008080; ">&#160;86</span>&#160;<span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;87</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;TRACE(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%0xd\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,m_key);<br></span><span style="color: #008080; ">&#160;88</span>&#160;<span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;89</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&#160;res&#160;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&#160;RegQueryValueEx(m_key,lpValueName,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">type,(&#160;unsigned&#160;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)lpValue,lpcbData);<br></span><span style="color: #008080; ">&#160;90</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&#160;(res</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">ERROR_SUCCESS)<br></span><span style="color: #008080; ">&#160;91</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;{<br></span><span style="color: #008080; ">&#160;92</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&#160;FALSE;<br></span><span style="color: #008080; ">&#160;93</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;}<br></span><span style="color: #008080; ">&#160;94</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br></span><span style="color: #008080; ">&#160;95</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;{<br></span><span style="color: #008080; ">&#160;96</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&#160;(lpType</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">NULL)<br></span><span style="color: #008080; ">&#160;97</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br></span><span style="color: #008080; ">&#160;98</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">lpType</span><span style="color: #000000; ">=</span><span style="color: #000000; ">type;<br></span><span style="color: #008080; ">&#160;99</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br></span><span style="color: #008080; ">100</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;TRACE(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%0xd\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,m_key);<br></span><span style="color: #008080; ">101</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&#160;TRUE;<br></span><span style="color: #008080; ">102</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;}<br></span><span style="color: #008080; ">103</span>&#160;<span style="color: #000000; ">}<br></span><span style="color: #008080; ">104</span>&#160;<span style="color: #000000; "><br></span><span style="color: #008080; ">105</span>&#160;<span style="color: #000000; ">BOOL&#160;PpCRegistry::ppRegDeleteValue(LPCSTR&#160;lpValueName)&#160;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&#160;删除注册表的某个值</span><span style="color: #008000; "><br></span><span style="color: #008080; ">106</span>&#160;<span style="color: #008000; "></span><span style="color: #000000; ">{<br></span><span style="color: #008080; ">107</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;assert(m_key);<br></span><span style="color: #008080; ">108</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;assert(lpValueName);<br></span><span style="color: #008080; ">109</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&#160;res</span><span style="color: #000000; ">=</span><span style="color: #000000; ">RegDeleteValue(m_key,lpValueName);<br></span><span style="color: #008080; ">110</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&#160;(res</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">ERROR_SUCCESS)<br></span><span style="color: #008080; ">111</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;{<br></span><span style="color: #008080; ">112</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;<br></span><span style="color: #008080; ">113</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&#160;FALSE;<br></span><span style="color: #008080; ">114</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;}<br></span><span style="color: #008080; ">115</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br></span><span style="color: #008080; ">116</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;{<br></span><span style="color: #008080; ">117</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&#160;TRUE;<br></span><span style="color: #008080; ">118</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;}<br></span><span style="color: #008080; ">119</span>&#160;<span style="color: #000000; ">}<br></span><span style="color: #008080; ">120</span>&#160;<span style="color: #000000; "><br></span><span style="color: #008080; ">121</span>&#160;<span style="color: #000000; "><br></span><span style="color: #008080; ">122</span>&#160;<span style="color: #000000; ">BOOL&#160;PpCRegistry::ppRegCloseKey()&#160;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&#160;关闭注册表&#160;</span><span style="color: #008000; "><br></span><span style="color: #008080; ">123</span>&#160;<span style="color: #008000; "></span><span style="color: #000000; ">{<br></span><span style="color: #008080; ">124</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&#160;(m_key)<br></span><span style="color: #008080; ">125</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;{<br></span><span style="color: #008080; ">126</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;RegCloseKey(m_key);<br></span><span style="color: #008080; ">127</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;m_key</span><span style="color: #000000; ">=</span><span style="color: #000000; ">NULL;<br></span><span style="color: #008080; ">128</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;}<br></span><span style="color: #008080; ">129</span>&#160;<span style="color: #000000; ">&#160;&#160;&#160;&#160;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&#160;TRUE<br>130 }</span></div></div><div><div>封装得很粗糙。只封装了一些对册表最基本的操作。希望在以后工作学习中一步一步的能把他完善。希望这里朋友多多指导。<br></div>
</div><img src ="http://www.cppblog.com/pingpo/aggbug/73068.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/pingpo/" target="_blank">PingPo</a> 2009-02-05 21:22 <a href="http://www.cppblog.com/pingpo/archive/2009/02/05/73068.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>每天面试笔试题 (0) Starting</title><link>http://www.cppblog.com/pingpo/archive/2008/12/13/69341.html</link><dc:creator>PingPo</dc:creator><author>PingPo</author><pubDate>Sat, 13 Dec 2008 07:07:00 GMT</pubDate><guid>http://www.cppblog.com/pingpo/archive/2008/12/13/69341.html</guid><wfw:comment>http://www.cppblog.com/pingpo/comments/69341.html</wfw:comment><comments>http://www.cppblog.com/pingpo/archive/2008/12/13/69341.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/pingpo/comments/commentRss/69341.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/pingpo/services/trackbacks/69341.html</trackback:ping><description><![CDATA[

&#160;&#160;面试/笔试时，大部分的题目都不会很难，但是要表述清楚，时常感觉捉襟见肘，当面试/笔试结束时难免悔恨，懊恼，问题如此简单却不能做到胸有成竹的地步。不知道其他应届朋友有没有这样的困惑。如果之前对类似的问题&#8220;做功课&#8221;，&#8220;演练&#8221;一下，应该可以很好解决这个问题。<div>打算在cppBLOG里每天整理5题，分析思考它。希望能解决这个问题。</div><div>大部分的面试题来自于互联网，都会贴出链接的地址。小部分是自己面试笔试时遇到的问题或者面试题中的常会考的题目。</div><img src ="http://www.cppblog.com/pingpo/aggbug/69341.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/pingpo/" target="_blank">PingPo</a> 2008-12-13 15:07 <a href="http://www.cppblog.com/pingpo/archive/2008/12/13/69341.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>也许太穷，忘记了银行密码。</title><link>http://www.cppblog.com/pingpo/archive/2008/12/11/69226.html</link><dc:creator>PingPo</dc:creator><author>PingPo</author><pubDate>Thu, 11 Dec 2008 14:55:00 GMT</pubDate><guid>http://www.cppblog.com/pingpo/archive/2008/12/11/69226.html</guid><wfw:comment>http://www.cppblog.com/pingpo/comments/69226.html</wfw:comment><comments>http://www.cppblog.com/pingpo/archive/2008/12/11/69226.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/pingpo/comments/commentRss/69226.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/pingpo/services/trackbacks/69226.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;也许太穷了，我忘记了银行密码。<br>&nbsp;&nbsp; 最近参加几个面试，有点心得，等到下次面自己意向公司的时候希望能准备得更好。<br>&nbsp;&nbsp; 一般搞C/C++的数据库是不是都比较菜?（大牛除外:-D）。而我基本对数据库一无所知。大三的时候年少无知，数据库课程基本没上。这周真心忏悔，苦学一周，从最简单的SQL学起。~ 希望能小有所成。<br><br>&nbsp; 
<img src ="http://www.cppblog.com/pingpo/aggbug/69226.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/pingpo/" target="_blank">PingPo</a> 2008-12-11 22:55 <a href="http://www.cppblog.com/pingpo/archive/2008/12/11/69226.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>