??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久久99精品成人片欧美,国产成人久久精品二区三区,久久综合久久综合久久http://www.shnenglu.com/NWAO/category/18886.htmlIt won't kill you to make you stronger!zh-cnSat, 12 Dec 2015 11:04:02 GMTSat, 12 Dec 2015 11:04:02 GMT60PRD法中的C计算Ҏhttp://www.shnenglu.com/NWAO/archive/2015/12/11/212458.htmlNWAONWAOFri, 11 Dec 2015 07:11:00 GMThttp://www.shnenglu.com/NWAO/archive/2015/12/11/212458.htmlhttp://www.shnenglu.com/NWAO/comments/212458.htmlhttp://www.shnenglu.com/NWAO/archive/2015/12/11/212458.html#Feedback0http://www.shnenglu.com/NWAO/comments/commentRss/212458.htmlhttp://www.shnenglu.com/NWAO/services/trackbacks/212458.html阅读全文

NWAO 2015-12-11 15:11 发表评论
]]>
使用lua判断点在多边形内?/title><link>http://www.shnenglu.com/NWAO/archive/2015/09/19/211870.html</link><dc:creator>NWAO</dc:creator><author>NWAO</author><pubDate>Sat, 19 Sep 2015 04:01:00 GMT</pubDate><guid>http://www.shnenglu.com/NWAO/archive/2015/09/19/211870.html</guid><wfw:comment>http://www.shnenglu.com/NWAO/comments/211870.html</wfw:comment><comments>http://www.shnenglu.com/NWAO/archive/2015/09/19/211870.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/NWAO/comments/commentRss/211870.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/NWAO/services/trackbacks/211870.html</trackback:ping><description><![CDATA[ <div style="padding: 4px 5px 4px 4px; border: 1px solid #cccccc; border-image: none; width: 98%; font-size: 13px; word-break: break-all; background-color: #eeeeee;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; "> 1</span> <span style="color: #000000; ">--</span><span style="color: #000000; ">获取多边形外围矩?br /></span><span style="color: #008080; "> 2</span> <span style="color: #000000; ">function GetPolyOutRect(p, poly)<br /></span><span style="color: #008080; "> 3</span> <span style="color: #000000; ">    local l_max_x </span><span style="color: #000000; ">=</span><span style="color: #000000; "> poly[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">].X;<br /></span><span style="color: #008080; "> 4</span> <span style="color: #000000; ">    local l_max_y </span><span style="color: #000000; ">=</span><span style="color: #000000; "> poly[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">].Y;<br /></span><span style="color: #008080; "> 5</span> <span style="color: #000000; ">    local l_min_x </span><span style="color: #000000; ">=</span><span style="color: #000000; "> l_max_x;<br /></span><span style="color: #008080; "> 6</span> <span style="color: #000000; ">    local l_min_y </span><span style="color: #000000; ">=</span><span style="color: #000000; "> l_min_y;<br /></span><span style="color: #008080; "> 7</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> i </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">2</span><span style="color: #000000; ">, #poly </span><span style="color: #0000FF; ">do</span><span style="color: #000000; "><br /></span><span style="color: #008080; "> 8</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> l_max_x </span><span style="color: #000000; "><</span><span style="color: #000000; "> poly[i].x then<br /></span><span style="color: #008080; "> 9</span> <span style="color: #000000; ">            l_max_x </span><span style="color: #000000; ">=</span><span style="color: #000000; "> poly[i].x;<br /></span><span style="color: #008080; ">10</span> <span style="color: #000000;">        end<br /></span><span style="color: #008080; ">11</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> l_max_y </span><span style="color: #000000; "><</span><span style="color: #000000; "> poly[i].y then<br /></span><span style="color: #008080; ">12</span> <span style="color: #000000; ">            l_max_y </span><span style="color: #000000; ">=</span><span style="color: #000000; "> poly[i].y;<br /></span><span style="color: #008080; ">13</span> <span style="color: #000000; ">        end<br /></span><span style="color: #008080; ">14</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> l_min_x </span><span style="color: #000000; ">></span><span style="color: #000000; "> poly[i].y then<br /></span><span style="color: #008080; ">15</span> <span style="color: #000000; ">            l_min_x </span><span style="color: #000000; ">=</span><span style="color: #000000; "> poly[i].y;<br /></span><span style="color: #008080; ">16</span> <span style="color: #000000; ">        end<br /></span><span style="color: #008080; ">17</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> l_min_y </span><span style="color: #000000; ">></span><span style="color: #000000; "> poly[i].y then<br /></span><span style="color: #008080; ">18</span> <span style="color: #000000; ">            l_min_y </span><span style="color: #000000; ">=</span><span style="color: #000000; "> poly[i].y;<br /></span><span style="color: #008080; ">19</span> <span style="color: #000000; ">        end<br /></span><span style="color: #008080; ">20</span> <span style="color: #000000; ">    end<br /></span><span style="color: #008080; ">21</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> {l_min_x,l_max_x,l_min_y,l_max_y};<br /></span><span style="color: #008080; ">22</span> <span style="color: #000000; ">end<br /></span><span style="color: #008080; ">23</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">24</span> <span style="color: #000000; "></span><span style="color: #000000; ">--</span><span style="color: #000000; ">Ҏ否在多边形外围矩形中<br /></span><span style="color: #008080; ">25</span> <span style="color: #000000; ">function IsPtInPolyRect(p, poly)<br /></span><span style="color: #008080; ">26</span> <span style="color: #000000; ">    local rect </span><span style="color: #000000; ">=</span><span style="color: #000000; "> GetPolyOutRect(p, poly);<br /></span><span style="color: #008080; ">27</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> p.x </span><span style="color: #000000; "><</span><span style="color: #000000; "> rect[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">] or p.x </span><span style="color: #000000; ">></span><span style="color: #000000; "> rect[</span><span style="color: #000000; ">2</span><span style="color: #000000; ">] or p.y </span><span style="color: #000000; "><</span><span style="color: #000000; "> rect[</span><span style="color: #000000; ">3</span><span style="color: #000000; ">] or p.y </span><span style="color: #000000; ">></span><span style="color: #000000; "> rect[</span><span style="color: #000000; ">4</span><span style="color: #000000; ">] then<br /></span><span style="color: #008080; ">28</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">29</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">30</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">31</span> <span style="color: #000000; ">    end<br /></span><span style="color: #008080; ">32</span> <span style="color: #000000; ">end<br /></span><span style="color: #008080; ">33</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">34</span> <span style="color: #000000; "></span><span style="color: #000000; ">--</span><span style="color: #000000; ">判断点在多边形内true or </span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">,Ҏ好在多边形边上时q回g?br /></span><span style="color: #008080; ">35</span> <span style="color: #000000; ">function IsPtInPoly(p, poly)<br /></span><span style="color: #008080; ">36</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">false</span><span style="color: #000000; "> </span><span style="color: #000000; ">==</span><span style="color: #000000; "> IsPtInPolyRect(p, poly) then<br /></span><span style="color: #008080; ">37</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">38</span> <span style="color: #000000; ">    end<br /></span><span style="color: #008080; ">39</span> <span style="color: #000000; ">    local l_odd </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">40</span> <span style="color: #000000; ">    local j </span><span style="color: #000000; ">=</span><span style="color: #000000; "> #poly;<br /></span><span style="color: #008080; ">41</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> i </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">1</span><span style="color: #000000; ">, #poly </span><span style="color: #0000FF; ">do</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">42</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> ((poly[i].y </span><span style="color: #000000; "><</span><span style="color: #000000; "> p.y and poly[j].y </span><span style="color: #000000; ">>=</span><span style="color: #000000; "> p.y) or poly[j].y </span><span style="color: #000000; "><</span><span style="color: #000000; "> p.y and poly[i].y </span><span style="color: #000000; ">>=</span><span style="color: #000000; "> p.y)) and (poly[i].x </span><span style="color: #000000; "><=</span><span style="color: #000000; "> p.x and poly[j].x </span><span style="color: #000000; "><=</span><span style="color: #000000; "> p.x) then<br /></span><span style="color: #008080; ">43</span> <span style="color: #000000; ">            </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> poly[i].x </span><span style="color: #000000; ">+</span><span style="color: #000000; "> (p.y </span><span style="color: #000000; ">-</span><span style="color: #000000; "> poly[i].y)</span><span style="color: #000000; ">*</span><span style="color: #000000; ">(poly[j].x </span><span style="color: #000000; ">-</span><span style="color: #000000; "> poly[i].x) </span><span style="color: #000000; ">/</span><span style="color: #000000; "> (poly[j].y </span><span style="color: #000000; ">-</span><span style="color: #000000; "> poly[i].y) </span><span style="color: #000000; "><</span><span style="color: #000000; "> p.x then<br /></span><span style="color: #008080; ">44</span> <span style="color: #000000; ">                l_odd </span><span style="color: #000000; ">=</span><span style="color: #000000; "> not l_odd;<br /></span><span style="color: #008080; ">45</span> <span style="color: #000000; ">            end<br /></span><span style="color: #008080; ">46</span> <span style="color: #000000; ">        end<br /></span><span style="color: #008080; ">47</span> <span style="color: #000000; ">    end<br /></span><span style="color: #008080; ">48</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> l_odd;<br /></span><span style="color: #008080; ">49</span> <span style="color: #000000; ">end<br /></span><span style="color: #008080; ">50</span> <span style="color: #000000; ">    <br /></span><span style="color: #008080; ">51</span> <span style="color: #000000; ">local p </span><span style="color: #000000; ">=</span><span style="color: #000000; "> {x </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">2</span><span style="color: #000000; ">, y </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">2.5</span><span style="color: #000000; ">};<br /></span><span style="color: #008080; ">52</span> <span style="color: #000000; ">local poly </span><span style="color: #000000; ">=</span><span style="color: #000000; "> {{x </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">1</span><span style="color: #000000; ">, y </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">2</span><span style="color: #000000; ">},{x </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">2</span><span style="color: #000000; ">, y </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">3</span><span style="color: #000000; ">},{x </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">3</span><span style="color: #000000; ">, y </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">2</span><span style="color: #000000; ">}}<br /></span><span style="color: #008080; ">53</span> <span style="color: #000000; ">local result </span><span style="color: #000000; ">=</span><span style="color: #000000; "> IsPtInPoly(p, poly);<br /></span><span style="color: #008080; ">54</span> <span style="color: #000000; ">print(result);<br /></span><span style="color: #008080; ">55</span> <span style="color: #000000; "></span><span style="color: #000000; ">--</span><span style="color: #000000; ">׃无法从代码中直接复制Q纯手敲代码Q若有疏漏,La?br /></span><span style="color: #008080; ">56</span> --代码参考了|上众多前辈的教E,不一一列出Q感谢前?span style="color: #000000; "><br /></span><span style="color: #008080; ">57</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">58</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">59</span> <span style="color: #000000; "></span></div><strong></strong><em></em><u></u><sub></sub><sup></sup><strike></strike><img src ="http://www.shnenglu.com/NWAO/aggbug/211870.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/NWAO/" target="_blank">NWAO</a> 2015-09-19 12:01 <a href="http://www.shnenglu.com/NWAO/archive/2015/09/19/211870.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在每一行下面都插入一行类似内?/title><link>http://www.shnenglu.com/NWAO/archive/2014/12/17/209212.html</link><dc:creator>NWAO</dc:creator><author>NWAO</author><pubDate>Wed, 17 Dec 2014 10:09:00 GMT</pubDate><guid>http://www.shnenglu.com/NWAO/archive/2014/12/17/209212.html</guid><wfw:comment>http://www.shnenglu.com/NWAO/comments/209212.html</wfw:comment><comments>http://www.shnenglu.com/NWAO/archive/2014/12/17/209212.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/NWAO/comments/commentRss/209212.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/NWAO/services/trackbacks/209212.html</trackback:ping><description><![CDATA[情景Q?左侧为原有txt内容  右侧改ؓ的格?br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 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; "> 1</span> Name_01=xxx                    Name_01=xxx<br /><span style="color: #008080; "> 2</span>                                Type_01=1<br /><span style="color: #008080; "> 3</span> Name_02=yyy                    Name_02=yyy<br /><span style="color: #008080; "> 4</span>                                Type_02=1<br /><span style="color: #008080; "> 5</span> Name_03=ffd                    Name_03=ffd<br /><span style="color: #008080; "> 6</span>                                Type_03=2<br /><span style="color: #008080; "> 7</span> Name_04=ssd                    Name_04=ssd<br /><span style="color: #008080; "> 8</span>                                Type_04=2<br /><span style="color: #008080; "> 9</span> <img src="http://www.shnenglu.com/Images/dot.gif" alt="" />.                           <img src="http://www.shnenglu.com/Images/dot.gif" alt="" />.<br /><span style="color: #008080; ">10</span> Name_97=qqq                    Name_97=qqq<br /><span style="color: #008080; ">11</span>                                Type_97=49<br /><span style="color: #008080; ">12</span> Name_98=eew                    Name_98=eew<br /><span style="color: #008080; ">13</span>                                Type_98=49    <br /><span style="color: #008080; ">14</span> Name_99=zzz                    Name_99=zzz<br /><span style="color: #008080; ">15</span>                                Type_99=50</div> <br /> 步骤Q?br /> 首先我们l每一行下面插入同L内容Q?vim  xx,yyg/^/norm oType_01=1       <br />              解释Qxx,yy 指定范围  执行g命oQ用^匚w每一行, norm的作?是把后面的内容当作普通模式下的按?<br />                      oType_01=1 ׃在下面新加一q写入Type_01=1<br /> 然后新插入的行作相应修? xx,yys#Type_\zs\d\+\ze#\=(line(".")+1)/2#  (q条命o可以参?a href="http://www.shnenglu.com/NWAO/archive/2014/08/26/208141.html">q篇文章</a>理解)<img src ="http://www.shnenglu.com/NWAO/aggbug/209212.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/NWAO/" target="_blank">NWAO</a> 2014-12-17 18:09 <a href="http://www.shnenglu.com/NWAO/archive/2014/12/17/209212.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>服务? q程桌面限制IP ?VPN l合的安全策?/title><link>http://www.shnenglu.com/NWAO/archive/2014/09/23/208386.html</link><dc:creator>NWAO</dc:creator><author>NWAO</author><pubDate>Tue, 23 Sep 2014 09:04:00 GMT</pubDate><guid>http://www.shnenglu.com/NWAO/archive/2014/09/23/208386.html</guid><wfw:comment>http://www.shnenglu.com/NWAO/comments/208386.html</wfw:comment><comments>http://www.shnenglu.com/NWAO/archive/2014/09/23/208386.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/NWAO/comments/commentRss/208386.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/NWAO/services/trackbacks/208386.html</trackback:ping><description><![CDATA[前几天搞了搞VPNQ也搞了搞远E桌面限制IP?现在需要结合v来用,提高服务器安全性?最l结果将?所有服务器 仅允?内网IPq行q程桌面Q?服务器组内专有一台VPN服务器可供连接,理人员从公司连接好VPN后,如同直接讉K内网服务器那栯问业务服务器?br /><br />一。限制远E桌面IP<br /><ul><li>      打开理工具-->本地安全{略-->IP本地安全{略-->右键-->理IP{选器列表和筛选器操作,  </li></ul>            a 创徏两个 IP{选器   [allow] ?192.168.1.0/24 ?我的IP地址 端口3389<br />                                         [deny] ?MIP ?我的IP 端口3389<br />            b 创徏两个{选器操作 [allow] 许可<br />                                         [deny] 止<br /><ul><li>      有了上面q两个筛选器 ?对应的操?我们可以创建安全策略了.  IP本地安全{略-->右键-->创徏IP安全{略</li></ul>             a 首先允许我们自己的内|IP  点击d 选中 名字为[allow]的IP{选器,  再选择 [allow]的筛选器操作, ׃q里的操作我选了“许可”,后面的验证方式不必选择?br />             b 然后止其它所有h的IP     点击d 选中 名字为[deny]的IP{选器,  再选择 [deny]的筛选器操作<br /><ul><li>现在我们止了所有的IP q行q程桌面q接, 同时 又允怺自己的内|IPq行q程桌面。即只有内网IP可以q行q程桌面操作.</li></ul>      具体的图可以参?a title="癑ֺ文库">癑ֺ文库</a>?br />二?建立VPN服务?Window2008)<br /><ul><li>      打开理工具-->服务器管理器-->角色-->右键-->d角色-->|络{略和访问服? </li></ul>            安装好后Q右键进行自定义配置Q选择VPN NAT LAN路由启动服务.<br />            完成后修改其属?->安全-->验证方式仅留下MS-CHAP V2,  取消IPV6相关讄Qƈ且指定好IP地址池,192.168.99.100-192.168.99.110.<br />            在\由和q程讉K-->IPv4-->NAT右键-->新增接口-->选择外网|卡-->公用接口q接到Internet(不选择 在此接口上启用NAT,因ؓ我们q里不打用VPN服务器的|络资源上网,而用客h自己的网l资?见第三步W??<br />            在\由和q程讉K-->IPv4-->NAT右键-->新增接口-->选择内网|卡-->公用接口q接到Internet,q且勾上 在此接口上启用NAT,以便客户机可以通过VPN服务器的内网讉K其它服务?(q个|卡的设|是试验出来?内网的不?在此接口上启用NAT,则不能访问其它服务器,转发原理不太明白)<br /><ul><li>      建立一个专用的VPN帐户Q指定其属?->拨入 为允许拨?</li></ul>      具体的图可以参?a title="ske_tech的文?>ske_tech的文?/a><br />三?客户端徏立VPNq接<br /><ul><li>      控制面板-->|络?Internet-->|络和共享中?建立VPNq接 填入VPN服务器地址Q以及刚才添加的VPN帐户Q蟩q验证阶Dc?/li><li>      然后修改QVPNq接属?->安全-->仅允许MS-CHAP V2验证, VPNq接属?->|络-->同样LIPV6</li><li>      修改VPNq接属?->|络-->IP V4属?->高-->取消"在远E网l上使用默认|关"(使得q上VPN后可以用本机讉K互联|?</li><li>      d一路由信息,以管理员w䆾打开命o行窗? 执行 route add 192.168.1.0/24 192.168.99.100</li></ul><br />四?q接VPN试<br />       讄好以? 打开q程桌面, 不连接VPN, 直接使用服务器外|IPq接不上, 直接q服务器内网IP也连不上.<br />       q接VPN, q接q程服务器的内网IP 192.168.1.3,可以q接? 实现了我们根据VPN IP限制服务器远E桌面的目标.<br /><br />五?存在问题<br /><ul><li>       在限制远E连接IP?若筛选器操作不选择"许可",而?协商安全",q且也指定好 w䆾验证Ҏ ?预共享字W串, 则在允许列表中的机器q是不能q接该服务器. 原因不明</li></ul><ul><li>在\由和q程讉K-->IPv4-->NAT右键-->新增接口 下的NAT讄依然不太明白原理</li><li>在客L建立好VPNq接?d的\由在VPN断开后会失效,再次q接上需要再d. 使用route add -p也不? 原因不明<br /><br />׃旉比较仓促, 不之处q望指正.如需转蝲h明出?<a href="http://www.shnenglu.com/NWAO/admin/EditPosts.aspx?postid=208350">http://www.shnenglu.com/NWAO/admin/EditPosts.aspx?postid=208350</a></li></ul><img src ="http://www.shnenglu.com/NWAO/aggbug/208386.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/NWAO/" target="_blank">NWAO</a> 2014-09-23 17:04 <a href="http://www.shnenglu.com/NWAO/archive/2014/09/23/208386.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux q接 windows vpn 服务?记录http://www.shnenglu.com/NWAO/archive/2014/09/23/208350.htmlNWAONWAOTue, 23 Sep 2014 06:47:00 GMThttp://www.shnenglu.com/NWAO/archive/2014/09/23/208350.htmlhttp://www.shnenglu.com/NWAO/comments/208350.htmlhttp://www.shnenglu.com/NWAO/archive/2014/09/23/208350.html#Feedback0http://www.shnenglu.com/NWAO/comments/commentRss/208350.htmlhttp://www.shnenglu.com/NWAO/services/trackbacks/208350.html
昨天搞的?windowsq?nbsp; linux服务器,今天领导要求反过来连Q于是折腾了一天又?br />1. 建立windows vpn server
在windows上新建好 VPN服务  图不弄了
mppe required,stateless

建立q接 pptpsetup --create myvvpn --username vpntest --password 123456 --encrypt --start
(不设|好w䆾认证Ҏq里会报错?
现在ping 192.168.1.x可以通了Q但想ping q程内网10.10.10.Xq不行。需要加一些route
route add -net 10.10.10.0/24 netmask 255.255.255.0 dev ppp0
现在可以了

NWAO 2014-09-23 14:47 发表评论
]]>
Linux vpn服务器架设流E?记录http://www.shnenglu.com/NWAO/archive/2014/09/16/208333.htmlNWAONWAOTue, 16 Sep 2014 12:39:00 GMThttp://www.shnenglu.com/NWAO/archive/2014/09/16/208333.htmlhttp://www.shnenglu.com/NWAO/comments/208333.htmlhttp://www.shnenglu.com/NWAO/archive/2014/09/16/208333.html#Feedback0http://www.shnenglu.com/NWAO/comments/commentRss/208333.htmlhttp://www.shnenglu.com/NWAO/services/trackbacks/208333.html 公司使用了某某云服务器,只有一个双|卡机器的可以远E上去,再连接其它几台。每ơ要改点东西q接服务器都是个头疼的事Q于是想到用VPN解决q个问题。方法是把双|卡的机器搞成linuxQ再架上vpnQ通过它直接访问那几台服务器?br />环境? CentOS 6.5
           |络   双网?23.23.23.23 (? 10.16.16.16(? 地址都是CZ地址?br />l过一下午baidul于搞成了。现在记录如?br />         1.首先查MPPE模块加蝲与否
          
modprobe ppp-compress-18 && echo MPPE IS OK

        如果内核上有该模块就会输出MPPE is ok

         2.安装软g
          安装ppp
yum install ppp
       安装iptables
yum install iptables

/etc/init.d/iptables start chkconfig --level 35 iptables on
         安装pptp
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpm

rpm 
-ivh pptpd-1.4.0-1.el6.x86_64.rpm
  
        4. 更改PPP PPTP的配|文?br />ppp
vi /etc/ppp/options.pptpd
修改
ms
-dns 8.8.8.8
ms
-dns 8.8.4.4
debug

 pptpd
vi /etc/pptpd.conf
修改
 localip 123.23.23.23
   remoteip 192.168.0.201-210

增加VPN帐号
vi /etc/ppp/chap-secrets
增加一?br />vpntest pptpd
123456 192.168.0.209

     5. 打开内核的{发功?br />
vi /etc/sysctl.conf
修改
net.ipv4.ip_forward
=1
然后
sysctl
-p

      6打开pptpd服务
/etc/init.d/pptpd start chkconfig --level 35 pptpd on

      7配置iptables
iptables -A INPUT -p gre -j ACCEPT
iptables
-A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
iptables
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables
-A FORWARD -s 192.168.0.0/24 -o eth0 -j ACCEPT
iptables
-A FORWARD -d 192.168.0.0/24 -i eth1 -j ACCEPT
iptables
-t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
iptables
-A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
iptables
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables
-A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
/etc/init.d/iptables save
service iptables restart

      8重启下pptpd
service pptpd restart

    9 从win7建立vpnq接试
创徏一个VPNq接 填入讄的IP  123.23.23.23 用户?vpntest 密码123456 q接 成功后最好把VPNq接 中属性\q接下的ipv6L?br />     

参?nbsp;  q篇文章
        

NWAO 2014-09-16 20:39 发表评论
]]>
使用VIM扚w更改数字的两个办?/title><link>http://www.shnenglu.com/NWAO/archive/2014/08/26/208141.html</link><dc:creator>NWAO</dc:creator><author>NWAO</author><pubDate>Tue, 26 Aug 2014 09:16:00 GMT</pubDate><guid>http://www.shnenglu.com/NWAO/archive/2014/08/26/208141.html</guid><wfw:comment>http://www.shnenglu.com/NWAO/comments/208141.html</wfw:comment><comments>http://www.shnenglu.com/NWAO/archive/2014/08/26/208141.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/NWAO/comments/commentRss/208141.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/NWAO/services/trackbacks/208141.html</trackback:ping><description><![CDATA[<div>最q遇C个问题,有一个表以前的sql备䆾文gQ想把它再导回该表中Q但ID一列与当前表中已有数据有冲H?br />只要把ID的数字改一下就可以直接gQ但?000多行数据Q一行行改会昑־很蠢Q想到用VIM的替换命令s完成q一d?br />    每行数据均ؓ INSERT INTO `TABLEX` VALUES ('300', 'XXXXX'<br />...etc),VALUES中的W一个数即ؓID.<br />    l过一番搜?探烦Q得C下命令解决问?<br />W一?br />    %s/\(VALUES ('\)\d\+\('\)/\=submatch(1).(line("."))+50).submatch(2)/<br />解释Q?s %代表替换命os在全文执? 替换命o格式?s/匚w?替换?<br />      /\(VALUES ('\)\d\+\('\)/ 是匹配串Q匹配每一行中的VALUES ('数字' q一D?br />      /\=submatch(1).(line("."))+50).submatch(2)/ 替换?<br />       \=是用后面的函数的意?br />       submatch 匚w前面?\( \)包含的部分如\(VALUES ('\)VALUES ('作ؓsubmatch(1)的匹配对象。submatch(2)则匹?数字后面?<br />       多个函数式?结果连接v?br /><br />W二?q个是后来才看到了,q个更简z些?br />    %s/VALUES ('\zs\d\+\ze/\=line(".")+50/<br />      %s 同上<br />      /VALUES ('\zs\d\+\ze/ 匚wԌ\zs代表的是替换操作开始处Q\ze代表的是替换操作l束处,q样后面的替换也只针对这一D进行替换?br />     /\=line(".")+50/ 替换Ԍ׃前面指定了替换段Q这里的替换内容直接指定合适的数值即?br /><br />PS: 上述s命o的匹配串都用到了正则表辑ּQ这里不作介l?br />本h使用的环境是win7 x64 + GVim7.4?br />对Vim本h也是初学乍练Q谬误之处望大家指正?/div><img src ="http://www.shnenglu.com/NWAO/aggbug/208141.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/NWAO/" target="_blank">NWAO</a> 2014-08-26 17:16 <a href="http://www.shnenglu.com/NWAO/archive/2014/08/26/208141.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++对象模型http://www.shnenglu.com/NWAO/archive/2013/10/30/203596.htmlNWAONWAOWed, 30 Oct 2013 08:31:00 GMThttp://www.shnenglu.com/NWAO/archive/2013/10/30/203596.htmlhttp://www.shnenglu.com/NWAO/comments/203596.htmlhttp://www.shnenglu.com/NWAO/archive/2013/10/30/203596.html#Feedback0http://www.shnenglu.com/NWAO/comments/commentRss/203596.htmlhttp://www.shnenglu.com/NWAO/services/trackbacks/203596.html2
3
     3.1 Data Memberl定
           ~译器以对类声明中函数内出现的变量的册在类声明l束后进行,而类内函数参数列表则在第一ơ出现时被决议,所以请把nested type声明攑֜cd明v始处?br />     3.2 Data Member布局
           C++规范要求各access section内变量在内存中与声明序一_而各access section序未限Ӟ当前都是access sectionsq在一?br />     3.3 Data Member存取
           当用指针存取成员时Q若在其l承l构中有一个virtual base classQ且存取的是该virtual base classӞ会和使用cd象直接存取有重大差别。由于无法在~译时确定指针具体指向何U类型,无法定变量offsetQ需要在执行期先从对象中获取virtual base class的地址Q然后找到成员?br />     3.4 l承
           当虚l承出现ӞClass被分割?不变局??׃n局?两部分。一般先安排不变局部,然后再安排共享局部?br />           主要有三U实现策略:
                 cfront原始模型 于每个derived class object内安插指针,指向virtual base class. 但有两个~点  a虚基c越多插入指针越多,I间负蝲变大  bl承串链增长旉接存取次C不断增加
               由鉴于此: 1). 一些编译器拯nested virtual base class指针Q以I间换时?br />                            2). MS作法Q加入virtual base class tableQ每个对象内插入vbptr指针
                            3). 在vftbl中放|?virtual base class 的offset
     3.5 对象成员的效?br />     3.6 指向数据成员指针
           int MyClass::*p = &MyClass::m_x;     pq回值在不同~译器有不同情况Q一般ؓ1, 5, 9..etc 1, 5, 9 的情况可以区分出“没有指向Mmember成员的指?0)”?#8220;指向W一个member成员的指?1)”,实际使用指针时应p-1    ;VC中ؓ0, 4, 8..etc  对于"没有指向Mmember成员的指?VC把它赋gؓ0xffffffff以此区分前述情况.

4
     4.1 Member的各U调用方?br />            1) nonstatic member functions               
                ?nonmember function有相同效?使用name mangling{手D{换ؓ接受this指针为参数的函数
            2) virtual member functions
                ptr->Myfun(); 会{换ؓ (*ptr->vptr[x])(ptr);
            3) static member function
                没有this指针与nonmember function有相?br />     4.2 virtual member functions
           class object上需要有classcd信息(字符串或数字)和vptr以及额外的虚函数?ptr->Myfun(); 会{换ؓ (*ptr->vptr[x])(ptr);
           多重l承时第一个base class直接可以使用指向对象开始处的thisQ其W二个及后base class需要调整this指针来支持虚函数Q有三种情况:a)通过pBase2 调用子类函数delete pBase2;(要调用Derived::~Derived)   b)通过pDerived调用Base2的虚函数 pDerived->Base2VirtualFunc(); c)虚函数返回值有变化Derived* Derived::clone(); pBase1 = new Derived; pBase2 = pBase1->clone();  调整this指针的有Utrunk技术,~译器内部各自用了不同Ҏ来解册整this指针的问?br />           虚承,量不要在虚基类中声明nonstatic data members?br />     4.3 函数效能
     4.4 指向成员函数的指?br />           取nonstatic nonvirtual成员函数之地址Q得到是内存地址,cddouble (MyClass::*pmf)()Q取static成员函数之地址得到内存地址Q类型double (*pmf)();取virtual成员函数地址得到vtbl中的序受?br />           使用指向成员函数的指针时在没有virtual函数Q多重承,虚基cȝ情况下和普通函数指针有同样的效率?br />           pmf可能是内存地址也可能是vtbl序P为此开始cfront使用了如下手D|持virtual函数
               (  (int)pmf & ~127)  ?  (*pmf)(ptr)  : (* ptr->vtble[(int)pmf]) (ptr);//最?28个虚函数
           多重l承下用了一个结构体来实?nbsp;
               struct __mptr {
                     int delta; //this指针的offset|(使用多重l承下第一个基cL针时?vptr在对象开始时则不需要此字段
                     int index;//vtbl index;
                     union{
                           ptrtofunc faddr;//函数地址
                           int v_offset;//虚基cL多重l承中的W二基类的vptr位置
                     };
                  }; 
            指向成员函数指针的效?br />       4.5 inline functions
            ~译器会Ҏ自己的机制来军_定函数是否可以成为inline functions?br />            inline函数会在被调用的那一点上扩展Q它会涉及到参数求值和临时对象的管理?br />            1)形参    若是帔R表达式则直接l定到参CQ若是有副作用的表达式,则需要引入时对象以避免重复求倹{?br />                        inline min(int i , int j){return i<j?i:j;}
                        int x =  min(foo(), foo2());
                         --> x= ( t1= foo(),t2=foo2(),t1 <t2?t1:t2;);
            2)局部变?br />                        若inline中若有局部变量,多次扩展后要l护的局部变量会很多?br />          使用inline函数Ӟ若调用次数太多,会ɽE序体积变大Q但它可以有效存取nonpublic数据Q相比宏对类装性提供了较好支持?img src ="http://www.shnenglu.com/NWAO/aggbug/203596.html" width = "1" height = "1" />

NWAO 2013-10-30 16:31 发表评论
]]>
log4cxx 在VS2008下报内存泄露http://www.shnenglu.com/NWAO/archive/2013/10/29/203972.htmlNWAONWAOTue, 29 Oct 2013 08:31:00 GMThttp://www.shnenglu.com/NWAO/archive/2013/10/29/203972.htmlhttp://www.shnenglu.com/NWAO/comments/203972.htmlhttp://www.shnenglu.com/NWAO/archive/2013/10/29/203972.html#Feedback0http://www.shnenglu.com/NWAO/comments/commentRss/203972.htmlhttp://www.shnenglu.com/NWAO/services/trackbacks/203972.html      时觉得心一凉,q开源Y件质量不至于q么差吧。。。随后查了查Q查到有是误报?br />于是Q?nbsp;  1)加上visual leak detector (vld), vldq未提示有内存泄Ԍ看来很有可能是误报了?br />           2)按下面第一文章的ҎQ跟了一下_CrtDumpMemoryLeaksQ?nbsp; _DllMainCRTStartup上下断点Q调试可发现log4cxx先于mfc90加蝲了,然后释放时先释放的mfc90Q它在检查已分配内存链表Ӟ把log4cxx中的q没释放的内存误报了?br />详见下面q篇文章?br />
http://blog.sina.com.cn/s/blog_68357baf0100ujxx.html
另外两个文章
http://blog.csdn.net/clever101/article/details/7926541
http://www.vis-sim.com/3dsceneBB/viewtopic.php?t=1027


解决办法:   证明报后q单了Q可以直接把log4cxx~译为release使用卛_?br />               若还是觉得不爽,非要用debug的log4cxxQ在stdafx.h中加?pragma comment(lib, "log4cxx.lib") 在工E属性中的link->Input->Additional Dependencies中删掉log4cxx.lib, 则可使mfc90加蝲释放序正常Q从而VC不再误报内存泄露?br />

PS:自己也写弄了个小E序演示此种mfc使用win32 dll的情况,发现一个有意思的事情Q定义的string内字W数要不于16才会昄误报情况Q原因不明,望高手指炏V?div>演示E序地址http://download.csdn.net/detail/nwao7890/6477591


NWAO 2013-10-29 16:31 发表评论
]]>
数组名里的问?/title><link>http://www.shnenglu.com/NWAO/archive/2013/03/22/198717.html</link><dc:creator>NWAO</dc:creator><author>NWAO</author><pubDate>Fri, 22 Mar 2013 05:48:00 GMT</pubDate><guid>http://www.shnenglu.com/NWAO/archive/2013/03/22/198717.html</guid><wfw:comment>http://www.shnenglu.com/NWAO/comments/198717.html</wfw:comment><comments>http://www.shnenglu.com/NWAO/archive/2013/03/22/198717.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/NWAO/comments/commentRss/198717.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/NWAO/services/trackbacks/198717.html</trackback:ping><description><![CDATA[int ary[10] ; aryxq个数组的数l名Q同时也是个指针帔Rgؓary[0]的地址,它的cd取决于数l元素的cdQ可以用aryq个指针来直接访问数l元素?br />     例如在访?a[8]Ӟary指向ary[0], ary向后U?个位|就Cary[8]Q?(ary+8)卛_(呃,虽然是叫ary[8]可它是ary的第9个元素,千万不能搞؜)<br /><br /><br />   而如果是short ary[10]的情况呢Qary[8]的地址怎么? {案依然?(ary+8)理由同上?br /><br />   PS:指针?所Ud的距MҎ指针的类型来军_?img src ="http://www.shnenglu.com/NWAO/aggbug/198717.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/NWAO/" target="_blank">NWAO</a> 2013-03-22 13:48 <a href="http://www.shnenglu.com/NWAO/archive/2013/03/22/198717.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>由strcpy惛_的一个小问题http://www.shnenglu.com/NWAO/archive/2013/03/22/198708.htmlNWAONWAOFri, 22 Mar 2013 01:37:00 GMThttp://www.shnenglu.com/NWAO/archive/2013/03/22/198708.htmlhttp://www.shnenglu.com/NWAO/comments/198708.htmlhttp://www.shnenglu.com/NWAO/archive/2013/03/22/198708.html#Feedback0http://www.shnenglu.com/NWAO/comments/commentRss/198708.htmlhttp://www.shnenglu.com/NWAO/services/trackbacks/198708.html
以前都是直接写网上的标准{案Q昨天忽然想hq个函数却又忘了|上怎么写的Q只好自己动手写了写Q还真发现点问题?br />
代码及问题如?br />
char* strcpy(char* dst, const char* src)
{
      if( !dst || !src)
         return null;
      char* p = dst;
      while( *p++ = *src++) // 问题在q儿Q?/span>
            ;
      return dst;
}

|上一般都是写?while((*p++ = *src++) != '\0') Q以前抄习惯了,也没注意可还可以再简化ؓ上面的写法?span style="color: red;">直接利用{号表达式的q回值来q行条g判断(到字W串末尾?\0'被复制之后等可辑ּ的返回g为\0?也就是false来蟩出@??/span>

NWAO 2013-03-22 09:37 发表评论
]]>
"A problem has been encountered while loading the setup components. Canceling setup"解决办法http://www.shnenglu.com/NWAO/archive/2012/11/08/194880.htmlNWAONWAOThu, 08 Nov 2012 07:45:00 GMThttp://www.shnenglu.com/NWAO/archive/2012/11/08/194880.htmlhttp://www.shnenglu.com/NWAO/comments/194880.htmlhttp://www.shnenglu.com/NWAO/archive/2012/11/08/194880.html#Feedback0http://www.shnenglu.com/NWAO/comments/commentRss/194880.htmlhttp://www.shnenglu.com/NWAO/services/trackbacks/194880.html安装好了VS2008打了SP1,
后来在工作中需要看一些web斚w的代码,准备更新下VS把原来没装的C#和WEB些都装上?br />扑և安装光盘的镜像来Q谁?#8220;A problem has been encountered while loading the setup components. Canceling setup”L冒出来,无法更新了还。无奈上|找办法Q有说用什么clean up工具包的Q有说卸载补丁的?br />
最l找?/span>完美解决办法“控制面板-->vs2008-->卸蝲/更新"好?/span>Q选择好需要的lgQl你的安装吧

NWAO 2012-11-08 15:45 发表评论
]]>
逻辑非与按位取反http://www.shnenglu.com/NWAO/archive/2012/08/22/187964.htmlNWAONWAOWed, 22 Aug 2012 07:46:00 GMThttp://www.shnenglu.com/NWAO/archive/2012/08/22/187964.htmlhttp://www.shnenglu.com/NWAO/comments/187964.htmlhttp://www.shnenglu.com/NWAO/archive/2012/08/22/187964.html#Feedback0http://www.shnenglu.com/NWAO/comments/commentRss/187964.htmlhttp://www.shnenglu.com/NWAO/services/trackbacks/187964.html  ~为按位取反,二进制位按位取反。如~0x20 --->~ 0010 0000 ---> 11011111;

以前不求甚解Q未分清楚二者。罪q?img src ="http://www.shnenglu.com/NWAO/aggbug/187964.html" width = "1" height = "1" />

NWAO 2012-08-22 15:46 发表评论
]]>
vs2008断点无效?调试启动?/title><link>http://www.shnenglu.com/NWAO/archive/2012/03/20/168382.html</link><dc:creator>NWAO</dc:creator><author>NWAO</author><pubDate>Tue, 20 Mar 2012 04:50:00 GMT</pubDate><guid>http://www.shnenglu.com/NWAO/archive/2012/03/20/168382.html</guid><wfw:comment>http://www.shnenglu.com/NWAO/comments/168382.html</wfw:comment><comments>http://www.shnenglu.com/NWAO/archive/2012/03/20/168382.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/NWAO/comments/commentRss/168382.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/NWAO/services/trackbacks/168382.html</trackback:ping><description><![CDATA[最q工作中调试时经常有?下好的断?断不下来的情况,看看吧,断点也在Q就是调到那里直接就q去了,必须重新删掉再下断点才有效?br />而且每次调试时启动都要等很长旉才会启动?br /><br />上网查找到很多办法,但经试验只有一U解决了问题  ”<span style="color: red;">删除所有断?/span>“?之后断点正常了,启动也不用等了?br /><br />分析Q可能是VS的断点记录与文g本n有关Q每ơ打开VS会自动从Team Foundation Server上更C码,q且重新~译之后Q都可能D断点与代码被VS认ؓ不匹配而失效。而调试启动时估计VS会去别处L它认为对的代码文件或是PDB文g。M应该是VS的BUG?img src ="http://www.shnenglu.com/NWAO/aggbug/168382.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/NWAO/" target="_blank">NWAO</a> 2012-03-20 12:50 <a href="http://www.shnenglu.com/NWAO/archive/2012/03/20/168382.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mfcs90ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj)http://www.shnenglu.com/NWAO/archive/2012/03/08/167403.htmlNWAONWAOThu, 08 Mar 2012 07:33:00 GMThttp://www.shnenglu.com/NWAO/archive/2012/03/08/167403.htmlhttp://www.shnenglu.com/NWAO/comments/167403.htmlhttp://www.shnenglu.com/NWAO/archive/2012/03/08/167403.html#Feedback1http://www.shnenglu.com/NWAO/comments/commentRss/167403.htmlhttp://www.shnenglu.com/NWAO/services/trackbacks/167403.html解決Q排除工E設|等原因後,上網查找lnk2005資料Q找C解決辦法?br />Step1 : Open project property--->Configuration property--->link-->Genral-->show Process 選為 VERBOSE:LIBQ然後Build會看到如下內容:
1 1>Linking
2 1>Searching libraries
3 1>    Searching C:\Program Files\Microsoft Visual Studio 9.0\VC\lib\MSVCRTD.lib:
4 1>    Searching C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\lib\mfcs90ud.lib:
5 1>mfcs90ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj)
     據說是msvcrt和mfcs90u鏈接順序不對致的,但為什麼順序會不正,未能扑ֈ原因Q解法為為其強制指定順序Q?br />Step2: project property--->Configuration property--->link-->Additional Dependies  = mfcs90ud.lib MSVCRTD.lib (DLL名字Debug版帶最後的DQRelease版不Ӟ下同Q?br />                                                                                    -->Ignore Specific Library = MSVCRTD.lib mfcs90ud.lib
     再編譯即OK
參考http://support.microsoft.com/kb/148652

NWAO 2012-03-08 15:33 发表评论
]]>
搜X输入法引L一个BUG不能正常复现http://www.shnenglu.com/NWAO/archive/2012/02/20/166041.htmlNWAONWAOMon, 20 Feb 2012 01:55:00 GMThttp://www.shnenglu.com/NWAO/archive/2012/02/20/166041.htmlhttp://www.shnenglu.com/NWAO/comments/166041.htmlhttp://www.shnenglu.com/NWAO/archive/2012/02/20/166041.html#Feedback0http://www.shnenglu.com/NWAO/comments/commentRss/166041.htmlhttp://www.shnenglu.com/NWAO/services/trackbacks/166041.html

公司的Y件有一个类似滚动条的自制控Ӟ关于此控件上的小滑块定义的点d拖动是有不同的响应函?通过在OnLButtonDown,OnLButtonUp, OnMouseMove中对标识鼠标动作的变量进行赋值和比较来定义最l的鼠标行ؓ) 但是在测试中发现了一个BUG,鼠标点击后的反应与设定不一_未实现预定动作?/p>

拿到BUG后,先要q行问题复现Q问题来了:在我自己的机器上调试时与提交BUG表现一_另一位同事的机器上也一_但第三位的机器上无论怎么试都未出现BUG所描述的情c?/p>
解决

代码拿到第三台机器上调试,发现无论鼠标怎么点击QL判断为拖动动作,后来换了鼠标、保持鼠标不动等办法也是拖动。好像是pȝ自动会把点击动作转换Z个点d一?位移的移动一栗?/p>

然后我觉得可能是pȝ讑֮的问题。将鼠标讑֮调成默认Q问题依旧。然后又停止了机器上一些其它Y件、服务问题依旧。直到有一ơ忽然得CBUG描述中的现象Q才发现是关闭了搜X输入法的原因。后来再试发现只要开着它,M判断为拖动,关闭该输入法后表现就正常了?/p>
教训

开始BUG不能复现L的是鼠标讑֮、Y件冲H的问题Q实在没惛_是小的输入法引L。估计是输入法内部ؓ了实Cq个Q云那个而在鼠标上搞什么鬼了吧?/p>

q怺我自׃用该输入法?/p>

一个简单的问题费了这么多话,表述能力不好Q以后还需要更加努力?/p>

NWAO 2012-02-20 09:55 发表评论
]]>
[导入]Resource.h文g的宏定義http://www.shnenglu.com/NWAO/archive/2010/12/13/143749.htmlNWAONWAOMon, 13 Dec 2010 05:44:00 GMThttp://www.shnenglu.com/NWAO/archive/2010/12/13/143749.htmlhttp://www.shnenglu.com/NWAO/comments/143749.htmlhttp://www.shnenglu.com/NWAO/archive/2010/12/13/143749.html#Feedback0http://www.shnenglu.com/NWAO/comments/commentRss/143749.htmlhttp://www.shnenglu.com/NWAO/services/trackbacks/143749.html今天打開Resource.h文g看了下,里面亂亂的,好多宏定是一個數Q也不敢隨便改,其是以前由于手動改過這個文Ӟ珑֜新生成的控gID與以前的^是重復?br />
為此Ҏ扑ֈ了其中宏定義的含,知道了這些Q控件ID可以隨便改啦?br />
_APS_NEXT_RESOURCE_VALUE is the next symbol value that will be used for a dialog resource, menu resource, and so on. The valid range for resource symbol values is 1 to 0x6FFF.
下一個對話框或菜單等資源的ID,1----0x6FFF

_APS_NEXT_COMMAND_VALUE is the next symbol value that will be used for a command identification. The valid range for command symbol values is 0x8000 to 0xDFFF.

下一個命令的IDQ?x8000---0xDFFF

_APS_NEXT_CONTROL_VALUE is the next symbol value that will be used for a dialog control. The valid range for dialog control symbol values is 8 to 0xDFFF.

下一個對話框控g的IDQ?---0xDFFF

_APS_NEXT_SYMED_VALUE is the next symbol value that will be issued when you manually assign a symbol value using the New command in the Symbol Browser.

在符號瀏覽器中使用新增命o里的預置ID

文章来源:http://blog.csdn.net/nwao7890/archive/2010/12/13/6073100.aspx

NWAO 2010-12-13 13:44 发表评论
]]>
清空VS的Recent Projects和Recent Fileshttp://www.shnenglu.com/NWAO/archive/2010/07/20/120885.htmlNWAONWAOTue, 20 Jul 2010 08:19:00 GMThttp://www.shnenglu.com/NWAO/archive/2010/07/20/120885.htmlhttp://www.shnenglu.com/NWAO/comments/120885.htmlhttp://www.shnenglu.com/NWAO/archive/2010/07/20/120885.html#Feedback0http://www.shnenglu.com/NWAO/comments/commentRss/120885.htmlhttp://www.shnenglu.com/NWAO/services/trackbacks/120885.htmlHKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Projects
HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Recent File List

VS8.0
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\ProjectMRUList
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\FileMRUList

清空以上内容Q再打开VS卛_


NWAO 2010-07-20 16:19 发表评论
]]>
ɫۺϾþþþ| þɫۺһ| ھƷþþþþ鶹| þþþþþþþþþĻ | þseƷһƷ| ޺ݺۺϾþþþ| ҹþþӰԺ| þþƷ99Ʒ | þۺϹapp| ޾Ʒ99þ| þþþþþۺϺݺۺ| þþþþþƷ| ھƷ˾þþþ777| þĻ| ŷ츾BBBþþ| þþþþùaѹۿ| ŷ޹Ʒþ| ɫۺϾþ| þ99һ| þƵᆱƷ99㽶| þþžžþƷֱ| 뾫ƷþþӰ| ƷҹþøƬ| þֻоƷ߹ۿ| 㽶þҹɫƷ| þþƷһ| þ޾ƷĻ| þþþ99ƷƬëƬ | ŷ˾þô߽ۺ69| ޾þþþþ77777| AVþþƷݺݰ˳| ƷëƬþþþþþ| ŷպƷþ| Ʒ99þþþþ| ŷ龫Ʒþþþþþþžž| Ʒ˾þô߽ɫҳ| þñ˾þ| þþƷ| LƷþ| þþƷ99Ӱ| ŵþ|