??xml version="1.0" encoding="utf-8" standalone="yes"?>婷婷久久香蕉五月综合加勒比,国产三级久久久精品麻豆三级,久久丫精品国产亚洲avhttp://m.shnenglu.com/saiksy/记录生活中的点点滴滴zh-cnMon, 30 Jun 2025 04:55:00 GMTMon, 30 Jun 2025 04:55:00 GMT60清空数据?讄自动~号?开?/title><link>http://m.shnenglu.com/saiksy/archive/2011/08/01/152238.html</link><dc:creator>saiksy</dc:creator><author>saiksy</author><pubDate>Mon, 01 Aug 2011 14:08:00 GMT</pubDate><guid>http://m.shnenglu.com/saiksy/archive/2011/08/01/152238.html</guid><wfw:comment>http://m.shnenglu.com/saiksy/comments/152238.html</wfw:comment><comments>http://m.shnenglu.com/saiksy/archive/2011/08/01/152238.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/saiksy/comments/commentRss/152238.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/saiksy/services/trackbacks/152238.html</trackback:ping><description><![CDATA[<p> </p> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #000000">"</span><span style="color: #000000">delete from tb_Cards</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #008000">//</span><span style="color: #008000"> 清空</span><span style="color: #008000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #000000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #000000">"</span><span style="color: #000000">ALTER TABLE tb_Cards ALTER COLUMN idx COUNTER (1, 1)</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #008000">//</span><span style="color: #008000"> 自动~号设ؓ1</span></div> <p> </p><img src ="http://m.shnenglu.com/saiksy/aggbug/152238.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/saiksy/" target="_blank">saiksy</a> 2011-08-01 22:08 <a href="http://m.shnenglu.com/saiksy/archive/2011/08/01/152238.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MFC中屏蔽ESC和回车关闭对话框http://m.shnenglu.com/saiksy/archive/2011/06/13/148561.htmlsaiksysaiksySun, 12 Jun 2011 17:23:00 GMThttp://m.shnenglu.com/saiksy/archive/2011/06/13/148561.htmlhttp://m.shnenglu.com/saiksy/comments/148561.htmlhttp://m.shnenglu.com/saiksy/archive/2011/06/13/148561.html#Feedback0http://m.shnenglu.com/saiksy/comments/commentRss/148561.htmlhttp://m.shnenglu.com/saiksy/services/trackbacks/148561.html 

在CDialog::PreTranslateMessage() 的重载函CESC和回车按键的消息处理?
  CResultCollectorDlg::PreTranslateMessage(MSG
* pMsg)
  
{

  
if(pMsg->message == WM_KEYDOWN) {

  
switch(pMsg->wParam) {

  
case VK_RETURN: //回R

        
return TRUE;

  
case VK_ESCAPE: //ESC

        
return TRUE;

  }


  }


  
return CDialog::PreTranslateMessage(pMsg);

  }

 



saiksy 2011-06-13 01:23 发表评论
]]>
VC2008常用快捷?/title><link>http://m.shnenglu.com/saiksy/archive/2011/05/31/147766.html</link><dc:creator>saiksy</dc:creator><author>saiksy</author><pubDate>Tue, 31 May 2011 09:43:00 GMT</pubDate><guid>http://m.shnenglu.com/saiksy/archive/2011/05/31/147766.html</guid><wfw:comment>http://m.shnenglu.com/saiksy/comments/147766.html</wfw:comment><comments>http://m.shnenglu.com/saiksy/archive/2011/05/31/147766.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/saiksy/comments/commentRss/147766.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/saiksy/services/trackbacks/147766.html</trackback:ping><description><![CDATA[<p><strong><span style="color: #008000">标准l合?/span></strong><br />关闭应用E序        Alt + F4              关闭 IDE?br />关闭文H口        Ctrl + F4             关闭当前zd的文窗口?br />Ud到菜单栏        Alt                   ȀzM IDE 菜单栏?br />UdC一工具?nbsp;   Ctrl + Tab            UdC一个可见的工具栏。仅在主菜单栏处于活动状态时可用?br />Ud到前一个工h  Ctrl + Shift + Tab    Ud到前一个可见的工具栏。仅在主菜单栏处于活动状态时可用?br /> <br /><strong><span style="color: #008000">文本操作快捷?/span><br /></strong>~辑.完成单词       Alt + 向右? ?-Ctrl + I格?nbsp;   昄Z当前语言?#8220;完整单词”?br />  <br />H口理快捷?br />视图.全屏                Shift + Alt+ Enter        切换“全屏”模式的打开和关闭?br />视图.c视?nbsp;             Ctrl + Shift + C          昄“c视?#8221;H口?br />视图.资源视图            Ctrl + Shift + E          昄“资源视图”H口?br />视图.解决Ҏ资源理?nbsp; Ctrl + Alt + L  昄解决Ҏ资源理器,它列出当前解x案中的项目和文g?br /> <br />目快捷?br />生成.~译            Ctrl + F7  <br />生成.生成解决Ҏ    F7<br />文g.新徏文g        Ctrl + N<br />文g.新徏目        Ctrl + Shift + N<br />文g.打开文g        Ctrl + O<br />文g.打开目        Ctrl + Shift + O</p> <p>调试快捷?br />调试.断点          F9         讄或取消断?br />调试.启用断点      Ctrl + F9  断点从用切换到启?br />调试.删除所有断?nbsp; Ctrl + Shift + F9   清除目中的所有断炏V?/p> <p>文本选择快捷?br />~辑.向左扩展一个字W?nbsp; Shift + 向左?nbsp; 光标左UM个字W以扩展所选内宏V?br />~辑.向右扩展一个字W?nbsp; Shift + 向右?nbsp; 光标右UM个字W以扩展所选内宏V?br />~辑.文l尾扩展      Ctrl + Shift + End  选择从插入点到文档最后一行的文本?br />~辑.文档开始扩?nbsp;     Ctrl + Shift + Home  选择从插入点到文档首行的文本?br />~辑.向下扩展一?nbsp;     Shift + 向下?nbsp;   从插入点位置开始,选定文本向下扩展一行?br />~辑.扩展到行?nbsp;       Shift + End   选择从插入点到当前行行尾的文本?br />~辑.扩展到行?nbsp;       Shift + Home   选择从插入点到行首的文本?br />~辑.向上扩展一?nbsp;     Shift + 向上?nbsp; 从插入点位置开始向上逐行选择文本?<br />~辑.向下扩展一?nbsp;     Shift + Page Down  选定内容向下扩展一c?br />~辑.向上扩展一?nbsp;     Shift + Page Up</p> <p><br />对象览器快捷键<br />~辑.转到声明  Ctrl + F12  昄代码中选定W号的定义?br />~辑.转到定义  F12  昄代码中选定W号的声明?/p> <p>cdpd快捷?br />cdpd.折叠   数字键区中的 -Q减P 折叠“c详l信?#8221;H口中展开的节点,或折叠关pd中选定的Ş犉舱?<br />cdpd.展开   数字键区中的 +Q加P 展开“c详l信?#8221;H口中折叠的节点Q或展开关系图中选定的Ş犉舱?/p><img src ="http://m.shnenglu.com/saiksy/aggbug/147766.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/saiksy/" target="_blank">saiksy</a> 2011-05-31 17:43 <a href="http://m.shnenglu.com/saiksy/archive/2011/05/31/147766.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tokenizes a string into a vectorhttp://m.shnenglu.com/saiksy/archive/2011/05/31/147755.htmlsaiksysaiksyTue, 31 May 2011 06:30:00 GMThttp://m.shnenglu.com/saiksy/archive/2011/05/31/147755.htmlhttp://m.shnenglu.com/saiksy/comments/147755.htmlhttp://m.shnenglu.com/saiksy/archive/2011/05/31/147755.html#Feedback0http://m.shnenglu.com/saiksy/comments/commentRss/147755.htmlhttp://m.shnenglu.com/saiksy/services/trackbacks/147755.html// Tokenizes a string into a vector
std::vector<std::string> TokenizeString(const std::string& str, const std::string& delim)
{
    
// http://www.gamedev.net/community/forums/topic.asp?topic_id=381544#TokenizeString
    using namespace std;
    vector
<string> tokens;
    size_t p0 
= 0, p1 = string::npos;
    
while(p0 != string::npos)
    
{
        p1 
= str.find_first_of(delim, p0);
        
if(p1 != p0)
        
{
            
string token = str.substr(p0, p1 - p0);
            tokens.push_back(token);
        }

        p0 
= str.find_first_not_of(delim, p1);
    }

    
return tokens;
}


saiksy 2011-05-31 14:30 发表评论
]]>
<?gt;使用luabind的第一D代?/title><link>http://m.shnenglu.com/saiksy/archive/2011/05/19/146719.html</link><dc:creator>saiksy</dc:creator><author>saiksy</author><pubDate>Wed, 18 May 2011 17:08:00 GMT</pubDate><guid>http://m.shnenglu.com/saiksy/archive/2011/05/19/146719.html</guid><wfw:comment>http://m.shnenglu.com/saiksy/comments/146719.html</wfw:comment><comments>http://m.shnenglu.com/saiksy/archive/2011/05/19/146719.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/saiksy/comments/commentRss/146719.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/saiksy/services/trackbacks/146719.html</trackback:ping><description><![CDATA[<p>既然是从零开?那么搞的傻瓜一?q是手把手教了. 哈哈.</p> <p>一下内容在vs2005实现</p> <p>新徏一个空的win32控制台项?</p> <p>1.首先我们来配|头文g和库文g:</p> <p>头文?</p> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #000000">D:\Lua\lua</span><span style="color: #000000">-</span><span style="color: #000000">5.1</span><span style="color: #000000">.</span><span style="color: #000000">4</span><span style="color: #000000">\src<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" />D:\Lua\luabind</span><span style="color: #000000">-</span><span style="color: #000000">0.8</span><span style="color: #000000">.</span><span style="color: #000000">1</span><span style="color: #000000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" />D:\Lua\boost_1_41_0<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div> <p>库文??见代?</p> <p> <wbr></p> <p>下面是cpp内容?注释都是个h理解,如果您觉得不?/p> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #000000">#include </span><span style="color: #000000"><</span><span style="color: #000000">luabind</span><span style="color: #000000">/</span><span style="color: #000000">luabind.hpp</span><span style="color: #000000">></span><span style="color: #000000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" />#pragma comment(lib,</span><span style="color: #000000">"</span><span style="color: #000000">lualib.lib</span><span style="color: #000000">"</span><span style="color: #000000">) </span><span style="color: #008000">//</span><span style="color: #008000">可能你会?lualib.lib是哪里来? q是我自q译luabind得到<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">?  如果你不知道怎么~译,参考下我的另一文?lt;从零开始用luabind></span><span style="color: #008000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #000000">#include </span><span style="color: #000000"><</span><span style="color: #000000">iostream</span><span style="color: #000000">></span><span style="color: #000000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000"> </span><span style="color: #0000ff">namespace</span><span style="color: #000000"> std;<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000"> </span><span style="color: #0000ff">namespace</span><span style="color: #000000"> luabind;<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #0000ff">class</span><span style="color: #000000"> testlua</span><span style="color: #008000">//</span><span style="color: #008000">写一个测试类,包括一些简单的Ҏ.</span><span style="color: #008000"><br /><img id="Codehighlighter1_252_416_Open_Image" onclick="this.style.display='none'; Codehighlighter1_252_416_Open_Text.style.display='none'; Codehighlighter1_252_416_Closed_Image.style.display='inline'; Codehighlighter1_252_416_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_252_416_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_252_416_Closed_Text.style.display='none'; Codehighlighter1_252_416_Open_Image.style.display='inline'; Codehighlighter1_252_416_Open_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span id="Codehighlighter1_252_416_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_252_416_Open_Text"><span style="color: #000000">{<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">:<br /><img id="Codehighlighter1_294_295_Open_Image" onclick="this.style.display='none'; Codehighlighter1_294_295_Open_Text.style.display='none'; Codehighlighter1_294_295_Closed_Image.style.display='inline'; Codehighlighter1_294_295_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_294_295_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_294_295_Closed_Text.style.display='none'; Codehighlighter1_294_295_Open_Image.style.display='inline'; Codehighlighter1_294_295_Open_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top"> testlua(std::</span><span style="color: #0000ff">string</span><span style="color: #000000"> s):m_str(s)</span><span id="Codehighlighter1_294_295_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_294_295_Open_Text"><span style="color: #000000">{}</span></span><span style="color: #000000">;<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /> </span><span style="color: #0000ff">void</span><span style="color: #000000"> myprint()<br /><img id="Codehighlighter1_315_343_Open_Image" onclick="this.style.display='none'; Codehighlighter1_315_343_Open_Text.style.display='none'; Codehighlighter1_315_343_Closed_Image.style.display='inline'; Codehighlighter1_315_343_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_315_343_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_315_343_Closed_Text.style.display='none'; Codehighlighter1_315_343_Open_Image.style.display='inline'; Codehighlighter1_315_343_Open_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top"> </span><span id="Codehighlighter1_315_343_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_315_343_Open_Text"><span style="color: #000000">{<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />  cout </span><span style="color: #000000"><<</span><span style="color: #000000"> m_str </span><span style="color: #000000"><<</span><span style="color: #000000"> endl;<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" /> }</span></span><span style="color: #000000"><br /><img id="Codehighlighter1_372_384_Open_Image" onclick="this.style.display='none'; Codehighlighter1_372_384_Open_Text.style.display='none'; Codehighlighter1_372_384_Closed_Image.style.display='inline'; Codehighlighter1_372_384_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_372_384_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_372_384_Closed_Text.style.display='none'; Codehighlighter1_372_384_Open_Image.style.display='inline'; Codehighlighter1_372_384_Open_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> setstr(std::</span><span style="color: #0000ff">string</span><span style="color: #000000"> s)</span><span id="Codehighlighter1_372_384_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_372_384_Open_Text"><span style="color: #000000">{ m_str </span><span style="color: #000000">=</span><span style="color: #000000"> s;}</span></span><span style="color: #000000">;<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #0000ff">private</span><span style="color: #000000">:<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /> std::</span><span style="color: #0000ff">string</span><span style="color: #000000"> m_str;<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />}</span></span><span style="color: #000000">;<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #0000ff">int</span><span style="color: #000000"> main()<br /><img id="Codehighlighter1_432_924_Open_Image" onclick="this.style.display='none'; Codehighlighter1_432_924_Open_Text.style.display='none'; Codehighlighter1_432_924_Closed_Image.style.display='inline'; Codehighlighter1_432_924_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_432_924_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_432_924_Closed_Text.style.display='none'; Codehighlighter1_432_924_Open_Image.style.display='inline'; Codehighlighter1_432_924_Open_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span id="Codehighlighter1_432_924_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_432_924_Open_Text"><span style="color: #000000">{<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /> lua_State </span><span style="color: #000000">*</span><span style="color: #000000">L </span><span style="color: #000000">=</span><span style="color: #000000"> luaL_newstate();</span><span style="color: #008000">//</span><span style="color: #008000">新徏一个lua_State,或者叫做创建lua状?/span><span style="color: #008000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #000000"> luabind::open(L);</span><span style="color: #008000">//</span><span style="color: #008000">为改lua状态打开所有lua?br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">把写好的cȝ定到lua,以下内容书所?我看的是missdeer同学译的luabindmanual一?<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">怿好学的你,如果不明白这是怎么用的,一定会找来q书Mȝ,当然我也很乐意和您分?Q:625425901)</span><span style="color: #008000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #000000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /> module(L)<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />[  <br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />   class_</span><span style="color: #000000"><</span><span style="color: #000000">testlua</span><span style="color: #000000">></span><span style="color: #000000">(</span><span style="color: #000000">"</span><span style="color: #000000">testlua</span><span style="color: #000000">"</span><span style="color: #000000">)<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />   .def(constructor</span><span style="color: #000000"><</span><span style="color: #0000ff">const</span><span style="color: #000000"> std::</span><span style="color: #0000ff">string</span><span style="color: #000000">></span><span style="color: #000000">())<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />   .def(</span><span style="color: #000000">"</span><span style="color: #000000">myprint</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">&</span><span style="color: #000000">testlua::myprint)</span><span style="color: #008000">//</span><span style="color: #008000">开放这两个函数llua使用</span><span style="color: #008000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #000000">   .def(</span><span style="color: #000000">"</span><span style="color: #000000">setstr</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">&</span><span style="color: #000000">testlua::setstr)<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />  ];<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /> <br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /> luaL_dofile(L,</span><span style="color: #000000">"</span><span style="color: #000000">test.lua</span><span style="color: #000000">"</span><span style="color: #000000">);</span><span style="color: #008000">//</span><span style="color: #008000">执行lua文g,E后你会看到test.lua文g的内?/span><span style="color: #008000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #000000"> lua_close(L);</span><span style="color: #008000">//</span><span style="color: #008000">关闭lua状?/span><span style="color: #008000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #000000"> </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />}</span></span><span style="color: #000000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /> <br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" />以下是test.lua内容:<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" />local a </span><span style="color: #000000">=</span><span style="color: #000000"> testlua(</span><span style="color: #000000">"</span><span style="color: #000000">hello lua!</span><span style="color: #000000">"</span><span style="color: #000000">);</span><span style="color: #000000">--</span><span style="color: #000000">看不?/span><span style="color: #000000">?</span><span style="color: #000000">如果我说它在c里是q样? testlua obj </span><span style="color: #000000">=</span><span style="color: #000000"> testlua(</span><span style="color: #000000">"</span><span style="color: #000000">hello lua!</span><span style="color: #000000">"</span><span style="color: #000000">),看懂了么</span><span style="color: #000000">?</span><span style="color: #000000">?构徏testluacȝ对象.<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" />a:myprint();</span><span style="color: #008000">//</span><span style="color: #008000">调用Ҏ</span><span style="color: #008000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #000000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" />a:setstr(</span><span style="color: #000000">"</span><span style="color: #000000">yes lua!</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" />a:myprint();<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /> <br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #000000">--</span><span style="color: #000000">接下来我们在lua里尝试如下代?<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" />a:hisprint();<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #000000">--</span><span style="color: #000000">你也怼?q个函数不存在啊.实不存?但是E序q没有报?所以或许我们需要其他的代码来处理这U错误的调用,后话?慢慢?<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /> <br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" />好了,执行一下C代码,你应该会看到惌的结果了.怿不少同学看到q里已经开始计划写一个类,用来随心所Ʋ的开放你的CҎllua使用?先到q里.<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div> <p>Ƣ迎批评指正.</p> <p> <wbr></p><img src ="http://m.shnenglu.com/saiksy/aggbug/146719.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/saiksy/" target="_blank">saiksy</a> 2011-05-19 01:08 <a href="http://m.shnenglu.com/saiksy/archive/2011/05/19/146719.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title><?gt;从零开始用luabindhttp://m.shnenglu.com/saiksy/archive/2011/05/18/146714.htmlsaiksysaiksyWed, 18 May 2011 15:35:00 GMThttp://m.shnenglu.com/saiksy/archive/2011/05/18/146714.htmlhttp://m.shnenglu.com/saiksy/comments/146714.htmlhttp://m.shnenglu.com/saiksy/archive/2011/05/18/146714.html#Feedback0http://m.shnenglu.com/saiksy/comments/commentRss/146714.htmlhttp://m.shnenglu.com/saiksy/services/trackbacks/146714.html那么好吧,我们来试试luabind.以下内容参考了不少|上的教E?׃被多方{?已经不知道作者是谁了,在这里对他们表示万分的感?

使用vs2005~译luabind

U色部分是我自己~译的时候遇到的一些问?或者应该注意的地方

  1. 下蝲lua (我用的版本 lua-5.1.4)
    从官方网?a target="_blank">http://www.lua.org/download.html可得到源码包.
  2. ~译lua
    使用VS.NET环境的用VS提供?Visual Studio命o提示",q入解开的源码包根目录下,按readme文提C?q行etc\luavs.bat,一般即可编译成?
  3. 对于使用lua的开发者来?可以直接?a target="_blank">http://luabinaries.luaforge.net/download.html下蝲~译后版?
  4. 下蝲boost (我用的boost_1_41_0)
    从官方网?a target="_blank">http://www.boost.org/users/download/下蝲源码?
  5. ~译bjam 
    从VS命o提示q入<boost_root>\tools\jam\src\,q行build.bat. Ҏ需要可以用各U参?比如希望使用vc8(VS 2005),则运?build.bat vc8.
    生成的目标文件在<boost_root>\tools\jam\src\bin.ntx86\bjam.exe.
  6. ~译boost
    bjam.exe拯?lt;boost_root>目录?在VS命o提示q入<boost_root>,q行bjam. 其他参数误行查?
      ~译旉比较?生成的目标文件在<boost_root>\bin.v2\libs.(或者在<boost_root> 新徏一个bat,写入如下内容: bjam --toolset=msvc-8.0 --stagedir=./lib_x86 --builddir=./ address-model=32 link=static runtime-link=static threading=multi stage debug release
    bjam --toolset=msvc-8.0 --stagedir=./lib_x64 --builddir=./ address-model=64 link=static runtime-link=static threading=multi stage debug release ,参数自己按需要修?q样你就可以直接用vs命o提示q行q个bat文g?  )
  7. 下蝲luabind
    ?a target="_blank">http://sourceforge.net/projects/luabind/下蝲源码? (我用的luabind-0.8.1.开始的时候用?.9rc1,~不q去)
  8. ~译luabind
    使用VS新徏win32目,新徏选项为静态库Static Link LibraryQ不使用预编译头Precompiled header. ?lt;luabind_root>\src下所有cpp文g加入工程. ?lt;boost_root>,<lua_root>\src,<luabind_root>加入附加包含路径.
    ~译luabind.lib.

另外,我修改了boost_1_41_0\tools\build\v2\user-config.jam文g中的 # using msvc : 8.0;

改后: # using msvc : 8.0 : : <compileflags>/wd4819 <compileflags>/D_CRT_SECURE_NO_DEPRECATE <compileflags>/D_SCL_SECURE_NO_DEPRECATE <compileflags>/D_SECURE_SCL=0 ;

不知道这会不会对~译造成影响.



saiksy 2011-05-18 23:35 发表评论
]]>
<?gt;Windows U程漫谈——界面线E和工作者线E?http://m.shnenglu.com/saiksy/archive/2011/05/18/146706.htmlsaiksysaiksyWed, 18 May 2011 14:43:00 GMThttp://m.shnenglu.com/saiksy/archive/2011/05/18/146706.htmlhttp://m.shnenglu.com/saiksy/comments/146706.htmlhttp://m.shnenglu.com/saiksy/archive/2011/05/18/146706.html#Feedback0http://m.shnenglu.com/saiksy/comments/commentRss/146706.htmlhttp://m.shnenglu.com/saiksy/services/trackbacks/146706.html每个pȝ都有U程Q而线E的最重要的作用就是ƈ行处理,提高软g的ƈ发率。针对界面来_q能提高界面的响应力?/p>

 U程分ؓ界面U程和工作者线E,界面实际是一个线E画出来的东西,q个U程l护一?#8220;消息队列”Q?#8220;消息队列”也是界面U程和工作者线E的最大区别,q个词应该进C的脑子里Q根p固的Q?/p>

如果在界面线E的某个地方停住Q这说明它处理不了窗口消息了Q所以有时候我们就会看到整个界面无响应了。这U问题后面会提供一个叫 WaitForObjectEx 的函数来解决Q我们后面再谈?/p>

U程首先是它的创徏Q创建是用下面这个函敎ͼCreateThread; 具体的参数我不说了,自己查݋QIQ。其中的 Thread1 是线E函数。线E函数是一个全局函数Q如下:

DWORD WINAPI Thread1(LPVOID lpParam)
{
  while(1)
 {
  OutputDebugString("11111");

  Sleep(10);
 }
 return 0;
}

// 下面q一句是创徏U程
CreateThread(NULL, 0, Thread1, 0, 0, NULL);

当然我们不能让一个线E自生自灭,那样有可能在你退出程序的时候出C些莫名其妙的问题Q或者丢׃些数据,或者给你弹一个崩溃的对话框等{。。?/p>

所以我们就要对q个U程q行理Q首先就是让它退出?/p>

我们l它的while加上一?BOOL 变量 g_bExitThread的判断,q样的话Q线E函数就变成下面q样Q?/p>

DWORD WINAPI Thread1(LPVOID lpParam)
{
  while(!g_bExitThread)
 {
  OutputDebugString("11111");

  Sleep(10);
 }
 return 0;
}

然后在需要它退出的时候把g_bExitThread设ؓTRUEQ表C,喂,兄弟Q你该退Z?/p>

当然我们q要知道它是否成功退ZQ因为线E句柄是一个内核对象,所以我们就要用到Windows的WaitForSingleObject来等待了。创建的时候和{待它退出的代码p改变了,多了一?HANDLE g_hTrd的变量:

// 创徏
g_bExitThread = FALSE;
g_hTrd = CreateThread(NULL, 0, Thread1, 0, 0, NULL);

// {待U程l束
g_bExitThread = TRUE;

 if(g_hTrd != NULL)
 {
  DWORD dwRet = WaitForSingleObject(g_hTrd, 5000);
  if(dwRet == WAIT_OBJECT_0)
  {
   AfxMessageBox("Thread exit success!");
  }
  else
  {
   DWORD dwRet = 0;
   GetExitCodeThread(g_hTrd, &dwRet);
   TerminateThread(g_hTrd, dwRet);
   AfxMessageBox("Thread exit, but not all ok!");
  }
  CloseHandle(g_hTrd);
  g_hTrd = NULL;
 }

上面说了在界面线E里{待别的U程l束Q也是使用 WaitForSingleObject 的时候会d整个H口消息的处理,所以我们如果在界面U程里要{待别的内核对象Ӟ我们要采用这U?#8220;{一下,处理一下界面消?#8221;的方法。我已经写好了一?WaitForObjectEx 的函敎ͼ如下Q?/p>

// 此函数只能用于界面线E?br />static DWORD WaitForObjectEx( HANDLE hHandle, DWORD dwMilliseconds )
{
 BOOL bRet;
 MSG msg;
 INT iWaitRet;
 int nTimeOut = 0;
 while( (bRet = ::GetMessage( &msg, NULL, 0, 0 )) != 0)
 {
  if(nTimeOut++ * 20 >= dwMilliseconds)
   break;

  iWaitRet = WaitForSingleObject(hHandle, 20);
  if(iWaitRet != WAIT_TIMEOUT)
  {
   break;
  }
  if (bRet == -1)
  {
   break;
  }
  else
  {
   ::TranslateMessage(&msg);
   ::DispatchMessage(&msg);
  }
 }

 return iWaitRet;
}

很多时候,我们不想把线E作Z个全局函数来用,所以这个时候我们把U程作ؓ一个类的静态成员对象来写。当然也不能了刚才的两个变量:退出标志和U程句柄。(设这个类是CTestThreadDlgQ?/p>

// H 文g
BOOL m_bExitThread;
 HANDLE m_hTrd;
 static DWORD WINAPI Thread1(LPVOID lpParam);

// CPP文gQ创建的时候把 this 指针传进去,因ؓc静态成员函C能访问类的非静态成员,没有this指针
//QC++的知识点Q?br /> m_bExitThread = FALSE;
 m_hTrd = CreateThread(NULL, 0, Thread1, this, 0, NULL);

U程函数变成了:

 DWORD WINAPI CTestThreadDlg::Thread1(LPVOID lpParam)
 {
  CTestThreadDlg *pDlg = (CTestThreadDlg*)lpParam;
  while(!pDlg->m_bExitThread)
  {
   OutputDebugString("11111");
 
   Sleep(10);
  }
  return 0;
 }

 

当有几个U程一赯的时候,我们p注意U程的同步问题了Q线E的同步一般来_是在多个U程q了资源的时候。比如两个线E都用到了同一个VECTORQ都对VECTORq行插入操作Q不q的是,VECTOR不是U程安全的,q个时候程序就会崩溃,所以我们就要对VECTORq个资源做同步,同步的意思是“我访问的时候,你等?#8221;。程序大致如下:

DWORD WINAPI CTestThreadDlg::Thread1(LPVOID lpParam)
 {
  CTestThreadDlg *pDlg = (CTestThreadDlg*)lpParam;
  while(!pDlg->m_bExitThread)
  {
   OutputDebugString("11111");
 
   pDlg->m_csForVec.Lock();
   pDlg->m_vecTest.push_back("111");
   pDlg->m_csForVec.Unlock();
 
   Sleep(10);
  }
  return 0;
 }

DWORD WINAPI CTestThreadDlg::Thread2(LPVOID lpParam)
{
 CTestThreadDlg *pDlg = (CTestThreadDlg*)lpParam;
 while(!pDlg->m_bExitThread2)
 {
  OutputDebugString("222");

  pDlg->m_csForVec.Lock();
  pDlg->m_vecTest.push_back("222");
  pDlg->m_csForVec.Unlock();

  Sleep(10);
 }
 return 0;
}

m_csForVec 是一个CCriticalSection变量Q这个同步对象和其他的同步变量(事g、信号量、互斥区{)有一些不一P例如只能在同一个进E的U程间访问、在操作pȝ的用h访问,其他的必进入核心态。所以这样导致了q种关键区的核心对象的速度要比其他的快100倍左叟뀂。?/p>

上面已经说了U程的创建、管理(退出线E、等待线E)、同步等Q那我们发现了什么共性呢Q作Z个程序员Q我们要很敏感的发现q些代码上的共性,q是我们设计代码的主要前提?/p>

首先我们发现上面的线E都有两个变量:
BOOL m_bExitThread;  // 让线E退出的标志
 HANDLE m_hTrd;  // U程句柄

另外我们WaitForSingleObject 的时候不能无限等待,所以要多一?DWORD m_dwWaitTimeOut;

׃我想把线E启动和l束装hQ所以我设计了这几个接口Q?/p>

 BOOL Start(LPVOID lpParam);  //  启动U程Q线E所需要的参数从这里传q?br /> BOOL End(); // l束U程
 virtual void Run(); // 重写Run函数

所以整个的U程装成以下的c:

// MyThread.h

#ifndef MY_THREAD_H
#define MY_THREAD_H

class CMyThread
{
public:
 CMyThread();
 virtual ~CMyThread();

 BOOL Start(LPVOID lpParam);
 BOOL End();
 virtual void Run();

protected:
 static DWORD WINAPI Thread(LPVOID lpParam);
 void RunOnceEnd();

 DWORD m_dwWaitTimeOut;
 BOOL m_bExitThread;
 HANDLE m_hTrd;
 LPVOID m_lpParam;
};

#endif

// MyThread.Cpp

#include "stdafx.h"
#include "MyThread.h"
/////////////////////////////////////////////////////////////////////////////
// CMyThread
CMyThread::CMyThread()
{
 m_bExitThread = FALSE;
 m_hTrd = NULL;
 m_dwWaitTimeOut = 5000;
}

CMyThread::~CMyThread()
{

}

BOOL CMyThread::Start(LPVOID lpParam)
{
 m_lpParam = lpParam;
 m_bExitThread = FALSE;
 m_hTrd = CreateThread(NULL, 0, Thread, this, 0, NULL);

 return TRUE;
}

BOOL CMyThread::End()
{
 m_bExitThread = TRUE;

 if(m_hTrd != NULL)
 {
  DWORD dwRet = WaitForSingleObject(m_hTrd, m_dwWaitTimeOut);
  if(dwRet == WAIT_OBJECT_0)
  {
   AfxMessageBox("Thread exit success!");
  }
  else
  {
   DWORD dwRet = 0;
   GetExitCodeThread(m_hTrd, &dwRet);
   TerminateThread(m_hTrd, dwRet);
   AfxMessageBox("Thread fucking exit!");
  }

  CloseHandle(m_hTrd);
  m_hTrd = NULL;
 }
 
 return TRUE;
}

DWORD WINAPI CMyThread::Thread(LPVOID lpParam)
{
 CMyThread *pTrd = (CMyThread *)lpParam;
 
 while(!pTrd->m_bExitThread)
 {
  pTrd->Run();
 }

 return 0;
}

void CMyThread::RunOnceEnd()
{
 m_bExitThread = TRUE;
 CloseHandle(m_hTrd);
 m_hTrd = NULL;
}

void CMyThread::Run()
{
}

我们需要写我们自己的线E的时候就重蝲一下这个Run函数

// zZ个类
class CMyThread1 : public CMyThread
{
public:
 virtual void Run();
};

// 改写Run函数
void CMyThread1::Run()
{
 CTestThreadDlg *pDlg = (CTestThreadDlg *)m_lpParam;

 OutputDebugString("222");
 
 pDlg->m_csForVec.Lock();
 pDlg->m_vecTest.push_back("222");
 pDlg->m_csForVec.Unlock();
 
 Sleep(10);

 // 如果此线E只惌行一ơ,加上下面q句
 RunOnceEnd();
}


然后我们之前的两个线E的使用变成了下面的Ş式:

CMyThread1 g_t1, g_t2, g_t3;
void CTestThreadDlg::OnButton3()
{
 g_t1.Start(this);
 g_t2.Start(this);
 g_t3.Start(this);
}

void CTestThreadDlg::OnButton4()
{
 g_t1.End();
 g_t2.End();
 g_t3.End(); 
}

只需要以下几步:
1、派生自qU程c?br />2、重载Run函数
3、调用Start启动U程
4、调用Endl束U程

当然q种装方式是我自己喜欢的,装的目的是方便使用Q隐藏细节,怽看官也可以根据自q喜好Q封装线E的使用ҎQ如果能在此公开一下你的成果,让我和大安学习一下你的设计手法,那就真是very good and 3q了!

 


本文来自CSDN博客Q{载请标明出处Q?a >http://blog.csdn.net/dylgsy/archive/2008/03/13/2176160.aspx



saiksy 2011-05-18 22:43 发表评论
]]>
<转帖>一句代码提升进E权?/title><link>http://m.shnenglu.com/saiksy/archive/2011/05/08/145959.html</link><dc:creator>saiksy</dc:creator><author>saiksy</author><pubDate>Sun, 08 May 2011 09:22:00 GMT</pubDate><guid>http://m.shnenglu.com/saiksy/archive/2011/05/08/145959.html</guid><wfw:comment>http://m.shnenglu.com/saiksy/comments/145959.html</wfw:comment><comments>http://m.shnenglu.com/saiksy/archive/2011/05/08/145959.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/saiksy/comments/commentRss/145959.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/saiksy/services/trackbacks/145959.html</trackback:ping><description><![CDATA[     摘要: RtlAdjustPrivilege(SE_DEBUG_PRIVILEGE,1,0,NULL);q个函数装在NtDll.dll中(在所有DLL加蝲之前加蝲Q,被微软严g密,是说你在MSDN上查不到关于他的M信息?帔R SE_BACKUP_PRIVILEGE, "17", 公开.帔R SE_RESTORE_PRIVILEGE, "18",&...  <a href='http://m.shnenglu.com/saiksy/archive/2011/05/08/145959.html'>阅读全文</a><img src ="http://m.shnenglu.com/saiksy/aggbug/145959.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/saiksy/" target="_blank">saiksy</a> 2011-05-08 17:22 <a href="http://m.shnenglu.com/saiksy/archive/2011/05/08/145959.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>创徏Consoleq定向printfhttp://m.shnenglu.com/saiksy/archive/2011/05/05/145765.htmlsaiksysaiksyThu, 05 May 2011 09:46:00 GMThttp://m.shnenglu.com/saiksy/archive/2011/05/05/145765.htmlhttp://m.shnenglu.com/saiksy/comments/145765.htmlhttp://m.shnenglu.com/saiksy/archive/2011/05/05/145765.html#Feedback0http://m.shnenglu.com/saiksy/comments/commentRss/145765.htmlhttp://m.shnenglu.com/saiksy/services/trackbacks/145765.html//-------------------------------------------
//当想在Win32 Application时想在控制台输出一些调?br>//信息,可以先创Z个控制台,再重定向输入,输出
//-------------------------------------------
AllocConsole();   
    HANDLE   handle   
=   GetStdHandle(STD_OUTPUT_HANDLE);
    
int   hCrt   =   _open_osfhandle((long)handle,_O_TEXT);
    FILE   
*   hf   =   _fdopen(   hCrt, "w");
    
*stdout   =   *hf;
    setvbuf( stdout, NULL, _IONBF, 
0 ); 
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY 
| FOREGROUND_GREEN);   //改变控制台文本颜?/span>

saiksy 2011-05-05 17:46 发表评论
]]>
pȝ菜单http://m.shnenglu.com/saiksy/archive/2010/09/13/126538.htmlsaiksysaiksyMon, 13 Sep 2010 15:09:00 GMThttp://m.shnenglu.com/saiksy/archive/2010/09/13/126538.htmlhttp://m.shnenglu.com/saiksy/comments/126538.htmlhttp://m.shnenglu.com/saiksy/archive/2010/09/13/126538.html#Feedback0http://m.shnenglu.com/saiksy/comments/commentRss/126538.htmlhttp://m.shnenglu.com/saiksy/services/trackbacks/126538.htmll菜单命令所使用的ID值相冲突。还要记住,当您些新菜单在H口消息处理E序中处?
WM_SYSCOMMAND  ?nbsp; ?nbsp; ?nbsp; Q?nbsp; ?nbsp; ?nbsp; ?nbsp; ?nbsp; ?nbsp; ?nbsp; ?nbsp; WM_SYSCOMMAND  ?nbsp; ?nbsp; ?nbsp; ?nbsp; l?
DefWindowProc。如果您不这样做Q那么实际上是禁用了pȝ菜单上的所有正帔R项?

saiksy 2010-09-13 23:09 发表评论
]]>
þþƷ99þ޶| ŷһþþƷ| þۺϸϾþúݺݺ97ɫ69| þþƷ99Ʒ| Ů޾Ʒþþۺ| 鶹Ʒþþþþþ99| þþþһ| 99þùۺ| ƷþþĻ| 㽶þþþþúݺɫ| 99þѹƷ| ȫɫƴɫƬѾþþ| ŷþþXXX| þþۺϾɫۺ̾| Ʒ԰״̼þþ| þĻƷһ| þAv뾫Ʒϵ| þһŷպ| պƷþþþþ| þ޵Ӱ| ƷþþþþĻ| VVþþ| Ұ¾þþƷ| þ뾫Ʒһ| 91Ʒ91þþþþ| պavþþƷ| Ļձ޾þþ | һõþۺϺݺݰ| ޹Ʒ˾þ| þ㽶߿ۿ| ޾þһ| þ޹ƷAVϼ| þۺɫ99žak| ݺɫ˾þþƷۺ | ˾þô߽AVɫɫ| þþƷר| ھƷþþþþ鶹| ˾Ʒþ| þù| þˬˬˬ| ŷ˾þô߽ۺ69|