﻿<?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++博客-看前面黑咚咚，待俺上前杀它个干干净净。。。</title><link>http://www.cppblog.com/cqjhsg/</link><description /><language>zh-cn</language><lastBuildDate>Mon, 13 Apr 2026 09:41:07 GMT</lastBuildDate><pubDate>Mon, 13 Apr 2026 09:41:07 GMT</pubDate><ttl>60</ttl><item><title>db2 818坑</title><link>http://www.cppblog.com/cqjhsg/archive/2014/03/21/206254.html</link><dc:creator>山城，山</dc:creator><author>山城，山</author><pubDate>Fri, 21 Mar 2014 02:35:00 GMT</pubDate><guid>http://www.cppblog.com/cqjhsg/archive/2014/03/21/206254.html</guid><wfw:comment>http://www.cppblog.com/cqjhsg/comments/206254.html</wfw:comment><comments>http://www.cppblog.com/cqjhsg/archive/2014/03/21/206254.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cqjhsg/comments/commentRss/206254.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cqjhsg/services/trackbacks/206254.html</trackback:ping><description><![CDATA[项目中有一个sqC产生的实体调用方法时，始终报818错。删掉bnd得编问题照旧。在同事的提示下--所有sqC文件名的前8个字符不能一样--,找到重复文件重命名，删掉BND文件，重编译，搞定。<img src ="http://www.cppblog.com/cqjhsg/aggbug/206254.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cqjhsg/" target="_blank">山城，山</a> 2014-03-21 10:35 <a href="http://www.cppblog.com/cqjhsg/archive/2014/03/21/206254.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Win7上编译 google V8</title><link>http://www.cppblog.com/cqjhsg/archive/2013/05/18/200372.html</link><dc:creator>山城，山</dc:creator><author>山城，山</author><pubDate>Sat, 18 May 2013 05:03:00 GMT</pubDate><guid>http://www.cppblog.com/cqjhsg/archive/2013/05/18/200372.html</guid><wfw:comment>http://www.cppblog.com/cqjhsg/comments/200372.html</wfw:comment><comments>http://www.cppblog.com/cqjhsg/archive/2013/05/18/200372.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cqjhsg/comments/commentRss/200372.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cqjhsg/services/trackbacks/200372.html</trackback:ping><description><![CDATA[<strong>一、环境</strong><br /> <div>编译工具：VS2012 Express</div> <div>操作系统：Win7旗舰版 64</div> <div>SVN客户端</div> <div>&nbsp;</div> <div><strong>二、下载</strong></div> <div>1、创建目录v8，用v8目录，check out: <a href="http://v8.googlecode.com/svn/trunk">http://v8.googlecode.com/svn/trunk/</a></div> <div>2、创建目录v8\build\gyp，用gyp目录，check out：<a href="http://gyp.googlecode.com/svn/trunk">http://gyp.googlecode.com/svn/trunk</a></div> <div>3、创建目录v8\third_party\cygwin，用cygwin目录，check out：<a href="http://src.chromium.org/svn/trunk/deps/third_party/cygwin">http://src.chromium.org/svn/trunk/deps/third_party/cygwin</a></div> <div>4、创建目录v8\third_party\python_26，用python_26目录，check out：<a href="http://src.chromium.org/svn/trunk/tools/third_party/python_26">http://src.chromium.org/svn/trunk/tools/third_party/python_26</a></div> <div>&nbsp;</div> <div>注：上面的check out目录同<a href="https://code.google.com/p/v8/wiki/BuildingWithGYP">https://code.google.com/p/v8/wiki/BuildingWithGYP</a>一文所述目录不一致，文中所述目录是无效的。</div> <div>&nbsp;</div> <div><strong>三、编译</strong></div> <div>1、打开VS2012 开发人员命令提示。</div> <div>2、cd v8目录。</div> <div>3、执行命令：</div> <div>&nbsp;&nbsp;&nbsp;third_party\python_26\python.exe build\gyp_v8 -G msvs_version=2010</div> <div>&nbsp;&nbsp;&nbsp;系统显示</div> <div>&nbsp;&nbsp;&nbsp;Updating projects from gyp files...</div> <div>4、在命令行中输入:build\all.sln，回车。</div> <div>5、系统自动打开VS2012 IDE环境。</div> <div>6、在IDE环境项目菜单中，更新项目，升级项目文件。</div> <div>7、编译。</div><img src ="http://www.cppblog.com/cqjhsg/aggbug/200372.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cqjhsg/" target="_blank">山城，山</a> 2013-05-18 13:03 <a href="http://www.cppblog.com/cqjhsg/archive/2013/05/18/200372.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux守护程序类-daemon</title><link>http://www.cppblog.com/cqjhsg/archive/2013/05/14/200250.html</link><dc:creator>山城，山</dc:creator><author>山城，山</author><pubDate>Tue, 14 May 2013 06:01:00 GMT</pubDate><guid>http://www.cppblog.com/cqjhsg/archive/2013/05/14/200250.html</guid><wfw:comment>http://www.cppblog.com/cqjhsg/comments/200250.html</wfw:comment><comments>http://www.cppblog.com/cqjhsg/archive/2013/05/14/200250.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cqjhsg/comments/commentRss/200250.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cqjhsg/services/trackbacks/200250.html</trackback:ping><description><![CDATA[<div><span style="font-size: 12px;">/////////////////////////////////////////////////////////////////////////////////////<br />/// &nbsp; daemon 测试类<br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;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 />-->#include&nbsp;&lt;unistd.h&gt;<br />#include&nbsp;&lt;syslog.h&gt;<br />#include&nbsp;&lt;stdlib.h&gt;<br />#include&nbsp;"daemon.h"<br /><br /><span style="color: #0000FF; ">class</span>&nbsp;logger&nbsp;:&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;daemon<br />{<br /><span style="color: #0000FF; ">public</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;logger()&nbsp;:&nbsp;daemon("日志")<br />&nbsp;&nbsp;&nbsp;&nbsp;{}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;do_something()<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(<span style="color: #0000FF; ">true</span>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;syslog&nbsp;(LOG_NOTICE,&nbsp;"Writing&nbsp;to&nbsp;my&nbsp;Syslog");<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(5);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />};<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;main(<span style="color: #0000FF; ">int</span>&nbsp;argc,&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;*argv[])&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;logger&nbsp;l;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;l.run();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><span style="font-size: 12px;"><br />////////////////////////////////////////////////////////////////////////////<br />// &nbsp; .h<br /><br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;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 />-->#ifndef&nbsp;DAEMON_H<br /><span style="color: #0000FF; ">#define</span>&nbsp;DAEMON_H<br /><br />#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>&gt;<br /><br /><span style="color: #0000FF; ">class</span>&nbsp;daemon{<br /><span style="color: #0000FF; ">public</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;std::<span style="color: #0000FF; ">string</span>&nbsp;name;<br /><span style="color: #0000FF; ">public</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;daemon(<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">char</span>*&nbsp;nm);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;run();<br /><br /><span style="color: #0000FF; ">private</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;fork_off_parent();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;set_child_context();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">virtual</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;open_log();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">virtual</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;do_something()&nbsp;=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">virtual</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;finish();<br /><span style="color: #0000FF; ">private</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;daemon(<span style="color: #0000FF; ">const</span>&nbsp;daemon&amp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;daemon&amp;&nbsp;<span style="color: #0000FF; ">operator</span>=(<span style="color: #0000FF; ">const</span>&nbsp;daemon&amp;);<br />};<br /><br /><span style="color: #0000FF; ">#endif</span>&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;DAEMON_H</span></div></div><div><span style="font-size: 12px;"><br />/////////////////////////////////////////////////////////////////////////////////<br />// &nbsp;.cpp<br /></span><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;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: #008000; ">/*</span><span style="color: #008000; "><br />&nbsp;*&nbsp;cp&nbsp;from&nbsp;&nbsp;</span><span style="color: #008000; text-decoration: underline; ">http://shahmirj.com/blog/beginners-guide-to-creating-a-daemon-in-linux</span><span style="color: #008000; "><br />&nbsp;</span><span style="color: #008000; ">*/</span><br /><br />#include&nbsp;"daemon.h"<br /><br />#include&nbsp;&lt;sys/stat.h&gt;<br />#include&nbsp;&lt;stdlib.h&gt;<br />#include&nbsp;&lt;unistd.h&gt;<br />#include&nbsp;&lt;syslog.h&gt;<br /><br />daemon::daemon(<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;*nm)&nbsp;:&nbsp;name(nm)<br />{}<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;daemon::run()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;fork_off_parent();<br />&nbsp;&nbsp;&nbsp;&nbsp;set_child_context();<br />&nbsp;&nbsp;&nbsp;&nbsp;open_log();<br />&nbsp;&nbsp;&nbsp;&nbsp;do_something();<br />&nbsp;&nbsp;&nbsp;&nbsp;finish();<br />}<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;daemon::fork_off_parent()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">Fork&nbsp;the&nbsp;Parent&nbsp;Process</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;pid_t&nbsp;pid&nbsp;=&nbsp;fork();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(pid&nbsp;&lt;&nbsp;0)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(EXIT_FAILURE);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">We&nbsp;got&nbsp;a&nbsp;good&nbsp;pid,&nbsp;Close&nbsp;the&nbsp;Parent&nbsp;Process</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(pid&nbsp;&gt;&nbsp;0)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(EXIT_SUCCESS);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;daemon::set_child_context()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">Change&nbsp;File&nbsp;Mask</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;umask(0);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">Create&nbsp;a&nbsp;new&nbsp;Signature&nbsp;Id&nbsp;for&nbsp;our&nbsp;child</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;pid_t&nbsp;sid&nbsp;=&nbsp;setsid();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(sid&nbsp;&lt;&nbsp;0)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(EXIT_FAILURE);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">Change&nbsp;Directory<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">If&nbsp;we&nbsp;cant&nbsp;find&nbsp;the&nbsp;directory&nbsp;we&nbsp;exit&nbsp;with&nbsp;failure.</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;((chdir("/"))&nbsp;&lt;&nbsp;0)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(EXIT_FAILURE);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">Close&nbsp;Standard&nbsp;File&nbsp;Descriptors</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;close(STDIN_FILENO);<br />&nbsp;&nbsp;&nbsp;&nbsp;close(STDOUT_FILENO);<br />&nbsp;&nbsp;&nbsp;&nbsp;close(STDERR_FILENO);<br />}<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;daemon::open_log()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">Set&nbsp;our&nbsp;Logging&nbsp;Mask&nbsp;and&nbsp;open&nbsp;the&nbsp;Log</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;setlogmask(LOG_UPTO(LOG_NOTICE));<br />&nbsp;&nbsp;&nbsp;&nbsp;openlog(name.c_str(),&nbsp;LOG_CONS&nbsp;|&nbsp;LOG_NDELAY&nbsp;|&nbsp;LOG_PERROR&nbsp;|&nbsp;LOG_PID,&nbsp;LOG_USER);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;syslog(LOG_INFO,&nbsp;"Entering&nbsp;Daemon");<br />}<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;daemon::finish()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">Close&nbsp;the&nbsp;log</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;closelog&nbsp;();<br />}</div></div><span style="font-size: 12px;"><br /></span></div><img src ="http://www.cppblog.com/cqjhsg/aggbug/200250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cqjhsg/" target="_blank">山城，山</a> 2013-05-14 14:01 <a href="http://www.cppblog.com/cqjhsg/archive/2013/05/14/200250.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Qt程序源码中,中文常量字符串问题及翻译家的使用</title><link>http://www.cppblog.com/cqjhsg/archive/2013/05/10/200162.html</link><dc:creator>山城，山</dc:creator><author>山城，山</author><pubDate>Fri, 10 May 2013 08:09:00 GMT</pubDate><guid>http://www.cppblog.com/cqjhsg/archive/2013/05/10/200162.html</guid><wfw:comment>http://www.cppblog.com/cqjhsg/comments/200162.html</wfw:comment><comments>http://www.cppblog.com/cqjhsg/archive/2013/05/10/200162.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cqjhsg/comments/commentRss/200162.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cqjhsg/services/trackbacks/200162.html</trackback:ping><description><![CDATA[&nbsp; &nbsp; 在Windows7下使用Qt creator开发程序，想直接在源代码中使用中文字符串常量，源码是utf8的，保持utf8是便于迁移到linux，VC编译器总是报错，串中有换行符，怪异的是如果恰好串只有两个中文字符时，一切都是那么美好，多了，VC编译器就会让你痛苦了。<br />&nbsp; &nbsp; 经过一番google,我总结了解决问题的原则：<br />&nbsp; &nbsp; 绝对不要在源码中使用中文字符串常量。<br />&nbsp; &nbsp; 那要显示的中文怎么做？用Qt Linguist.<br /><br />下面是方法：<br /><p style="margin: 0in; font-size: 10.5pt;"><span style="font-family:微软雅黑"><br />第一步：打开</span><span style="font-family:Calibri">.pro</span><span style="font-family: 微软雅黑;">文件，在最后面加入一行</span></p>  <p style="margin:0in;margin-left:.375in;font-family:微软雅黑;font-size:10.5pt"><span style="color:#55FF55">TRANSLATIONS</span> = cn.ts</p>  <p style="margin:0in;margin-left:.375in;font-size:10.5pt"><span style="font-family:微软雅黑">可以自由命名右边的</span><span style="font-family: Calibri">.ts</span><span style="font-family:微软雅黑">文件</span></p>  <p style="margin:0in;font-family:微软雅黑;font-size:10.5pt">&nbsp;</p>  <p style="margin:0in;font-size:10.5pt"><span style="font-family:微软雅黑">第二步：选择菜单：工具</span><span style="font-family:Calibri">/</span><span style="font-family:微软雅黑">外部</span><span style="font-family:Calibri">/Qt</span><span style="font-family:微软雅黑">翻译家</span><span style="font-family:Calibri">/</span><span style="font-family:微软雅黑">更新翻译</span><span style="font-family:Calibri">(lupdate)</span></p>  <p style="margin:0in;margin-left:.375in;font-size:10.5pt"><span style="font-family:微软雅黑">此时，系统将在</span><span style="font-family: Calibri">.pro</span><span style="font-family:微软雅黑">文件所在目录生成</span><span style="font-family:Calibri">cn.ts</span><span style="font-family: 微软雅黑">文件</span></p>  <p style="margin:0in;font-family:微软雅黑;font-size:10.5pt">&nbsp;</p>  <p style="margin:0in;font-size:10.5pt"><span style="font-family:微软雅黑">第三步：打开</span><span style="font-family:Calibri">cn.ts</span><span style="font-family:微软雅黑">文件，注意是用菜单：打开文件，用</span><span style="font-family:Calibri">...</span><span style="font-family:微软雅黑">。这种方式，在对话框中选择</span></p>  <p style="margin:0in;margin-left:.375in;font-family:Calibri;font-size:10.5pt">Qt Linguist</p>  <p style="margin:0in;font-family:Calibri;font-size:10.5pt">&nbsp;</p>  <p style="margin:0in;font-size:10.5pt"><span style="font-family:微软雅黑">第四步：在</span><span style="font-family:Calibri">Qt Linguist</span><span style="font-family:微软雅黑">中，汉化找到的源代码中的字符串常量。</span></p>  <p style="margin:0in;font-family:微软雅黑;font-size:10.5pt">&nbsp;</p>  <p style="margin:0in;font-size:10.5pt"><span style="font-family:微软雅黑">第五步：完成汉化后，保存并选择【发布】。系统会在</span><span style="font-family:Calibri">cn.ts</span><span style="font-family:微软雅黑">文件所在目录生成</span><span style="font-family:Calibri">cn.qm</span><span style="font-family: 微软雅黑">文件。<br /><br /></span></p><p style="margin:0in;font-size:10.5pt"><span style="font-family:微软雅黑" lang="zh-CN">第六步：把汉文件文件添加到，项目资源中。打开</span><span style="font-family:Calibri" lang="en-US">.qrc</span><span style="font-family:微软雅黑" lang="zh-CN">文件，添加</span><span style="font-family:Calibri" lang="en-US">cn.qm</span><span style="font-family:
微软雅黑" lang="zh-CN">文件</span></p>

<p style="margin:0in;margin-left:.375in;font-family:Calibri;font-size:10.5pt" lang="en-US">/tr</p>

<p style="margin:0in;margin-left:.375in;font-family:Calibri;font-size:10.5pt" lang="en-US">&nbsp;&nbsp;&nbsp;&nbsp; cn.qm</p><p>&nbsp;</p>  <p style="margin:0in;font-family:微软雅黑;font-size:10.5pt">&nbsp;</p>  <p style="margin:0in;font-size:10.5pt"><span style="font-family:微软雅黑">第七步：使用汉化结果</span><span style="font-family:Calibri">. </span><span style="font-family:微软雅黑">在主窗口显示前，应用实例创建后安装翻译器。</span></p>  <p style="margin:0in;margin-left:.375in;font-family:微软雅黑;font-size:10.5pt"><span style="color:#55FF55">QApplication</span> a<span style="color:#AAAAAA">(</span>argc<span style="color:#AAAAAA">,</span> argv<span style="color:#AAAAAA">);</span></p>  <p style="margin:0in;margin-left:.375in;font-family:微软雅黑;font-size:10.5pt">&nbsp;</p>  <p style="margin:0in;margin-left:.375in;font-family:微软雅黑;font-size:10.5pt"><span style="color:#55FF55">QTranslator</span> translator<span style="color:#AAAAAA">;</span></p>  <p style="margin:0in;margin-left:.375in;font-family:微软雅黑;font-size:10.5pt">&nbsp;</p>  <p style="margin:0in;margin-left:.375in;font-family:微软雅黑;font-size:10.5pt">translator<span style="color:#AAAAAA">.</span>load<span style="color:#AAAAAA">(</span><span style="color:#FF55FF">":tr/cn.qm"</span><span style="color:#AAAAAA">);</span></p>  <p style="margin:0in;margin-left:.375in;font-family:微软雅黑;font-size:10.5pt">a<span style="color:#AAAAAA">.</span>installTranslator<span style="color:#AAAAAA">(&amp;</span>translator<span style="color:#AAAAAA">);</span></p>  <p style="margin:0in;margin-left:.375in;font-family:微软雅黑;font-size:10.5pt; color:#AAAAAA">&nbsp;</p>  <p style="margin:0in;font-family:微软雅黑;font-size:10.5pt">经验：有些时候明明已经翻译了，程序还是不生效，此时你可以选择【清理项目】后再次构建，试一下。</p><img src ="http://www.cppblog.com/cqjhsg/aggbug/200162.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cqjhsg/" target="_blank">山城，山</a> 2013-05-10 16:09 <a href="http://www.cppblog.com/cqjhsg/archive/2013/05/10/200162.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux 平台Eclipse与CMake结合的方法</title><link>http://www.cppblog.com/cqjhsg/archive/2012/05/07/173907.html</link><dc:creator>山城，山</dc:creator><author>山城，山</author><pubDate>Mon, 07 May 2012 07:55:00 GMT</pubDate><guid>http://www.cppblog.com/cqjhsg/archive/2012/05/07/173907.html</guid><wfw:comment>http://www.cppblog.com/cqjhsg/comments/173907.html</wfw:comment><comments>http://www.cppblog.com/cqjhsg/archive/2012/05/07/173907.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cqjhsg/comments/commentRss/173907.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cqjhsg/services/trackbacks/173907.html</trackback:ping><description><![CDATA[&nbsp; 
<p style="margin: 0in; font-size: 10pt"><span style="font-family: Calibri">1</span><span style="font-family: SimSun">、项目目录规划</span></p>
<p style="margin: 0in; font-family: SimSun; font-size: 10pt">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt"><span style="font-family: Calibri">&nbsp;&nbsp;&nbsp; </span><span style="font-family: SimSun">在</span><span style="font-family: Calibri">project_dir</span><span style="font-family: SimSun">下建立</span><span style="font-family: Calibri">build, cmake,&nbsp;src</span><span style="font-family: SimSun">三个目录。</span></p>
<p style="margin: 0in; font-family: SimSun; font-size: 10pt">&nbsp;&nbsp;</p>
<p style="margin: 0in; font-size: 10pt"><span style="font-family: Calibri">2</span><span style="font-family: SimSun">、按照</span><span style="font-family: Calibri">CMake</span><span style="font-family: SimSun">要求，为项目编写</span><span style="font-family: Calibri">CMakeLists.txt</span><span style="font-family: SimSun">文件。</span></p>
<p style="margin: 0in; font-family: SimSun; font-size: 10pt">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt"><span style="font-family: Calibri">3</span><span style="font-family: SimSun">、调用</span><span style="font-family: Calibri">CMake</span><span style="font-family: SimSun">命令为</span><span style="font-family: Calibri">eclipse</span><span style="font-family: SimSun">生成项目文件，我把这些命令写成脚本来执行</span><span style="font-family: Calibri">:</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; make_project.sh</p>
<p style="margin: 0in; font-family: Calibri; font-size: 10pt">&nbsp;</p>
<p style="margin: 0in 0in 0in 0.375in; font-family: Calibri; font-size: 10pt">#!/bin/sh</p>
<p style="margin: 0in 0in 0in 0.375in; font-family: 微软雅黑; font-size: 10pt">mkdir -p build/release</p>
<p style="margin: 0in 0in 0in 0.375in; font-family: 微软雅黑; font-size: 10pt">mkdir -p build/debug</p>
<p style="margin: 0in 0in 0in 0.375in; font-family: 微软雅黑; font-size: 10pt">cmake -E chdir build/release cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=release ../../</p>
<p style="margin: 0in 0in 0in 0.375in; font-family: 微软雅黑; font-size: 10pt">cmake -E chdir build/debug cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=debug ../../</p>
<p style="margin: 0in 0in 0in 0.375in; font-family: Calibri; font-size: 10pt">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt"><span style="font-family: Calibri">4</span><span style="font-family: SimSun">、打开</span><span style="font-family: Calibri">eclipse,</span><span style="font-family: SimSun">选择菜单：文件</span><span style="font-family: Calibri">/ </span><span style="font-family: SimSun">导入</span><span style="font-family: Calibri">/</span><span style="font-family: SimSun">常规</span><span style="font-family: Calibri">/</span><span style="font-family: SimSun">现有项目到工作空间中</span><span style="font-family: Calibri">.</span><span style="font-family: SimSun">。在&#8220;导入&#8221;对话框中，在&#8220;选择根目录&#8221;项目中指定目录为</span><span style="font-family: Calibri">project_dir/build.</span></p>
<p style="margin: 0in; font-size: 10pt"><span style="font-family: Calibri">&nbsp;&nbsp;&nbsp; eclipse</span><span style="font-family: 宋体">会自动搜索到</span><span style="font-family: Calibri">debug, release</span><span style="font-family: 宋体">两个目录下的项目。</span></p>
<p style="margin: 0in; font-size: 10pt"><span style="font-family: Calibri">&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">点击&#8220;完成&#8221;按钮。</span><span style="font-family: Calibri">eclipse</span><span style="font-family: 宋体">将自动加入项目。</span></p>
<p style="margin: 0in; font-family: 宋体; font-size: 10pt">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt"><span style="font-family: Calibri">5</span><span style="font-family: 宋体">、</span><span style="font-family: Calibri">build</span><span style="font-family: 宋体">项目。</span></p>
<p style="margin: 0in; font-family: 宋体; font-size: 10pt">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt"><span style="font-family: Calibri">6</span><span style="font-family: 宋体">、调试项目时，你需要在菜单：运行</span><span style="font-family: Calibri">/</span><span style="font-family: 宋体">调试配置</span> <span style="font-family: 宋体">里新增配置信息，指定执行文件的路径。</span></p><img src ="http://www.cppblog.com/cqjhsg/aggbug/173907.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cqjhsg/" target="_blank">山城，山</a> 2012-05-07 15:55 <a href="http://www.cppblog.com/cqjhsg/archive/2012/05/07/173907.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一张图</title><link>http://www.cppblog.com/cqjhsg/archive/2012/02/28/166702.html</link><dc:creator>山城，山</dc:creator><author>山城，山</author><pubDate>Tue, 28 Feb 2012 09:20:00 GMT</pubDate><guid>http://www.cppblog.com/cqjhsg/archive/2012/02/28/166702.html</guid><wfw:comment>http://www.cppblog.com/cqjhsg/comments/166702.html</wfw:comment><comments>http://www.cppblog.com/cqjhsg/archive/2012/02/28/166702.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cqjhsg/comments/commentRss/166702.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cqjhsg/services/trackbacks/166702.html</trackback:ping><description><![CDATA[图本身没有什么特别的，只是用来分析任务队列，图是用来推理的。<br /><img style="width: 522px; height: 560px" border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/cqjhsg/工作队列模型.png" width="522" height="560" /> <img src ="http://www.cppblog.com/cqjhsg/aggbug/166702.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cqjhsg/" target="_blank">山城，山</a> 2012-02-28 17:20 <a href="http://www.cppblog.com/cqjhsg/archive/2012/02/28/166702.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>wxFormBuildert杂记二则</title><link>http://www.cppblog.com/cqjhsg/archive/2010/09/30/128116.html</link><dc:creator>山城，山</dc:creator><author>山城，山</author><pubDate>Thu, 30 Sep 2010 00:29:00 GMT</pubDate><guid>http://www.cppblog.com/cqjhsg/archive/2010/09/30/128116.html</guid><wfw:comment>http://www.cppblog.com/cqjhsg/comments/128116.html</wfw:comment><comments>http://www.cppblog.com/cqjhsg/archive/2010/09/30/128116.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cqjhsg/comments/commentRss/128116.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cqjhsg/services/trackbacks/128116.html</trackback:ping><description><![CDATA[一、wxFormBuilder选择utf8生成的cpp代码，是无代码签名的，VS2008 express编译过程中可能会出现字符串错误。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;解决办法是：打开文件菜单，选择保存高级选项，在&#8220;编码&#8221;中选择&#8220;unicode - 代码页1200&#8221;，确定后，重新编译。<br>二、wxFormBuilder制作wxFlexGridSizer布局时，其默认rows,cols都是2，这个值不会自动变化，因此，你添加了超个2*2个窗体后，生成的cpp代码可以顺利编译，但运行过程会报超过2*2的错。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 解决办法：调整rows, cols值。 <br><br><br>更正：方法一，更简单的处理是在项目属性中勾选c++ properties/ use_microsoft_bom 设置，这样生成的cpp文件，VS2008 Express 无碍编译。
<img src ="http://www.cppblog.com/cqjhsg/aggbug/128116.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cqjhsg/" target="_blank">山城，山</a> 2010-09-30 08:29 <a href="http://www.cppblog.com/cqjhsg/archive/2010/09/30/128116.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sqlite简明使用</title><link>http://www.cppblog.com/cqjhsg/archive/2010/07/29/117729.html</link><dc:creator>山城，山</dc:creator><author>山城，山</author><pubDate>Thu, 29 Jul 2010 09:32:00 GMT</pubDate><guid>http://www.cppblog.com/cqjhsg/archive/2010/07/29/117729.html</guid><wfw:comment>http://www.cppblog.com/cqjhsg/comments/117729.html</wfw:comment><comments>http://www.cppblog.com/cqjhsg/archive/2010/07/29/117729.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cqjhsg/comments/commentRss/117729.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cqjhsg/services/trackbacks/117729.html</trackback:ping><description><![CDATA[跑题<br>据说Oracle Berkeley DB"很好",就去试用一下，但是，它，很不给我面子，在put了半天之后，我想get一下写入的东西，运行正常，但没有结果返回，看了几遍帮助，copy文档的代码，也是这个结果，就很是郁闷了。没有太多的时间去追究问题，还好世上还有一些&#8220;美好&#8221;的东西。sqlite，也是嵌入数据库，据说它快但是比Oracle Berkeley DB&#8220;逊色&#8221;，但Oracle Berkeley DB 11g的sql引擎是用sqlite的，最重要的它还是免费的。<br>有兴趣了解的朋友可以去这里看一下。<br><a href="http://www.bdbchina.com/2010/03/oracle-berkeley-db-%E6%94%AF%E6%8C%81sql%E5%95%A6%EF%BC%81/">http://www.bdbchina.com/2010/03/oracle-berkeley-db-%E6%94%AF%E6%8C%81sql%E5%95%A6%EF%BC%81/</a><br>BDB中国研发团队的博客，讲了一些与sqlite的关系。这里摘录一下：<br><br><font style="FONT-SIZE: 10pt" face="Courier New">&#8220;Oracle Berkeley DB引入了SQLite的SQL层：包括用户接口（sqlite3(), ODBC, JDBC等）和SQL语言处理层（Tokenizer、Parser及Generator），而底层引擎（虚拟机）则使用了BDB的存储引擎。从而，将原来SQLite基于数据库级别的并发提升一个级别 - 至BDB的基于页(Page)级别的并发，并可以利用BDB的更好的内存管理、数据和事务恢复功能、更多的扩展（如Berkeley DB的db_hotbackup、db_stat、db_archive等一系列命令行工具）。&#8221;<br></font><br>&#8220;<br>
<p><tt><strong>Berkeley DB SQL和SQLite使用上的区别</strong></tt></p>
<p><tt>a) 对于用户和开发人员来说，</tt><tt>这两个产品是没有区别的。它们在SQL语法、API、命令行交互、PRAGAMAs 等方面都是一致的。我认为，用户可以体验的显著区别有可能是性能和并发了 - 由于SQLite提供的是数据库级别的锁，而Berkeley DB SQL是页(Page)级别的锁，因此后者在绝大多数测试中都会快很多 （如Insert, Update, Delete, 并发操作等）。但是，由于DBSQL提供的细粒度锁的机制，它又会带来一些额外的开销，一些极端的测试用例下会比SQLite慢上少许(但不明显)。并且对于这些极端测试的案例，我们一直在进行性能优化。</tt></p>
<p><tt>b) 对于已有的SQLite应用程序和</tt><tt>工具而言，由于这两者在调用接口都是一致的，因而都可以无缝支持。</tt></p>
<p><tt>c) 对于DBA人员来说，</tt><tt>除了可以继续使用SQLite原来的管理工具，您还可以使用BDB提供</tt><tt>的db_hotbackup、db_stat、db_archive等一系列命令行工具来备份，监控，升级等。另外，您还可以联系Oracle寻求支持。<br></tt></p>
<p><tt>总体而言，</tt><tt>我们有充分理由相信</tt><tt>Oracle Berkeley DB SQL将会比SQLite更快，更稳定。同时，我们也将会提供更好的支持服务。<br>&#8221;</tt><br><br>正题<br>使用<a href="http://sqlitewrapper.kompex-online.com/">http://sqlitewrapper.kompex-online.com/</a>&nbsp;Kompex SQLite Wrapper 呵呵，超好用<br><br>完了<br></p>
<img src ="http://www.cppblog.com/cqjhsg/aggbug/117729.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cqjhsg/" target="_blank">山城，山</a> 2010-07-29 17:32 <a href="http://www.cppblog.com/cqjhsg/archive/2010/07/29/117729.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>wcsftime，_wcsftime_l之困</title><link>http://www.cppblog.com/cqjhsg/archive/2010/07/29/121614.html</link><dc:creator>山城，山</dc:creator><author>山城，山</author><pubDate>Thu, 29 Jul 2010 09:27:00 GMT</pubDate><guid>http://www.cppblog.com/cqjhsg/archive/2010/07/29/121614.html</guid><wfw:comment>http://www.cppblog.com/cqjhsg/comments/121614.html</wfw:comment><comments>http://www.cppblog.com/cqjhsg/archive/2010/07/29/121614.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cqjhsg/comments/commentRss/121614.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cqjhsg/services/trackbacks/121614.html</trackback:ping><description><![CDATA[本想用wcsftime，_wcsftime_l来简化时间格式化操作，显示中文时间，于是就这样整：<br>&nbsp;&nbsp;&nbsp; wchar_t buf[128];<br>&nbsp;&nbsp;&nbsp; wcsftime(buf, 128, L"%y年%m月%d ...." ...)<br>谁知道执行成功，但buf里边内容为空，注意不是"\0"，是什么也没有返回. 东找西查，可能是local相关问题。<br>好，我设置&nbsp; "CHS"，OK，（调试。。），再F5 , NND,sqlite又报一个互斥量错误，额的娘哟！消灭一个问题，又引入一个新问题。。。立即痴呆3分钟：-（。<br>&nbsp;&nbsp; 好了，好了，惹来起，躲得起，我可不会去探寻为什么sqlite会不给面子，不然这一天又过去了。<br>还好，有数据，毛老人家讲&#8220;自力更生，丰衣足食&#8221;，wcsprintf一样的可用。。。<br><br>
<img src ="http://www.cppblog.com/cqjhsg/aggbug/121614.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cqjhsg/" target="_blank">山城，山</a> 2010-07-29 17:27 <a href="http://www.cppblog.com/cqjhsg/archive/2010/07/29/121614.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>当前路径 !=程序路径   --我吃了它的苦头</title><link>http://www.cppblog.com/cqjhsg/archive/2010/06/04/117193.html</link><dc:creator>山城，山</dc:creator><author>山城，山</author><pubDate>Fri, 04 Jun 2010 15:17:00 GMT</pubDate><guid>http://www.cppblog.com/cqjhsg/archive/2010/06/04/117193.html</guid><wfw:comment>http://www.cppblog.com/cqjhsg/comments/117193.html</wfw:comment><comments>http://www.cppblog.com/cqjhsg/archive/2010/06/04/117193.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/cqjhsg/comments/commentRss/117193.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cqjhsg/services/trackbacks/117193.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp; 第一次，我在写一个MFC程序，用CFile打开文件时，我认为当前路径==程序路径，文件名没有采用绝对路径。在程序执行过程中，没有打开任何文件对话框时，我的想当然是对的，可是只要弹出一个文件对话后，我就跌入了沼泽，耗时三天，才发现文件对话框是要更改当前路径的。<br>&nbsp;&nbsp;&nbsp; 每二次，我在写一个服务时，一个函数里边要打开读取一个文件，在非服务程序的执行过程中，函数表现正常。当我转换成服务，在主函中调用它后，在服务启动运行期间，它运行不正常。我又认为当前路径==程序路径，文件打开失败，调试了一下午才找出原因。<br><br>&#8220;同一个错误，不能犯两次&#8221;</p>
<img src ="http://www.cppblog.com/cqjhsg/aggbug/117193.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cqjhsg/" target="_blank">山城，山</a> 2010-06-04 23:17 <a href="http://www.cppblog.com/cqjhsg/archive/2010/06/04/117193.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>