﻿<?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++博客-看前面黑咚咚，待俺上前杀它个干干净净。。。-随笔分类-C++</title><link>http://www.cppblog.com/cqjhsg/category/3536.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 11 May 2012 09:34:38 GMT</lastBuildDate><pubDate>Fri, 11 May 2012 09:34:38 GMT</pubDate><ttl>60</ttl><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>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>当前路径 !=程序路径   --我吃了它的苦头</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><item><title>wchar_t 宽字节流写入中文的问题</title><link>http://www.cppblog.com/cqjhsg/archive/2010/05/23/116163.html</link><dc:creator>山城，山</dc:creator><author>山城，山</author><pubDate>Sun, 23 May 2010 05:15:00 GMT</pubDate><guid>http://www.cppblog.com/cqjhsg/archive/2010/05/23/116163.html</guid><wfw:comment>http://www.cppblog.com/cqjhsg/comments/116163.html</wfw:comment><comments>http://www.cppblog.com/cqjhsg/archive/2010/05/23/116163.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cqjhsg/comments/commentRss/116163.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cqjhsg/services/trackbacks/116163.html</trackback:ping><description><![CDATA[<p>先看程序：<br>#include "stdafx.h"<br>#include &lt;fstream&gt;<br>int _tmain(int argc, _TCHAR* argv[])<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp; std::wofstream&nbsp;&nbsp; test(L"Test.Log");<br>&nbsp;&nbsp;&nbsp;&nbsp; test &lt;&lt; L"hello 中文";</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br>}</p>
<p>UNICODE编译、调试；结果中Test.Log文件的内容只有&#8220;hell&#8221;没有&#8220;中文&#8221;。<br><br>这是因为C++标准库的国际化设计问题，你需要设置locale。<br><br>#include "stdafx.h"</p>
<p>#include &lt;fstream&gt;<br><span style="COLOR: #00ccff">#include &lt;locale&gt;</span></p>
<p>int _tmain(int argc, _TCHAR* argv[])<br>{<br>&nbsp;std::wofstream&nbsp;&nbsp; test(L"Test.Log");</p>
<p><span style="COLOR: #00ccff">&nbsp;test.imbue( std::locale("CHS") );</span></p>
<p>&nbsp;test &lt;&lt; L"hello 中文";</p>
<p>&nbsp;return 0;<br>}<br><br>再调试，不是有&#8220;中文&#8221;了？</p>
<img src ="http://www.cppblog.com/cqjhsg/aggbug/116163.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-05-23 13:15 <a href="http://www.cppblog.com/cqjhsg/archive/2010/05/23/116163.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>免费C++开发环境的搭建（此贴有误）</title><link>http://www.cppblog.com/cqjhsg/archive/2007/08/29/31136.html</link><dc:creator>山城，山</dc:creator><author>山城，山</author><pubDate>Wed, 29 Aug 2007 03:23:00 GMT</pubDate><guid>http://www.cppblog.com/cqjhsg/archive/2007/08/29/31136.html</guid><wfw:comment>http://www.cppblog.com/cqjhsg/comments/31136.html</wfw:comment><comments>http://www.cppblog.com/cqjhsg/archive/2007/08/29/31136.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/cqjhsg/comments/commentRss/31136.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cqjhsg/services/trackbacks/31136.html</trackback:ping><description><![CDATA[弄一个既免费,又专业,又功能强大的C++开发环境是现实存在,它不是梦.<br>我的方案是:<br>VC 2005 Express<br>PSDK<br>ResEdit<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VC 2005 Express 不是只能写"hello Bill :)"之类的控制台程序,它一样可能开发win32程序,这在MSDN中都有说明,同正式版相比.除了不具备资源编辑器之外,功能同正式版是一样的.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 要开发win32程序,光VC2005 Express是不够的,你还得需要PSDK,这也是免费的,你需要下载.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;至于如何安装设置,我就不详说了,你google吧,现成的多的是.<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RegEdit是个免费的资源编辑器,它可以用来补充vc 2005 Express的不足.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(但我用它时,发现对中文支持不好,后找了个resource builder来用,它是收费的.试用期只有30天.resource builder 功能强大, 确实不错,还有即时测试功能, 嗳,只采取另一种方式来用resource builder了 :-)&nbsp;&nbsp;).<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我是在用WTL 8.0,WTL要命的还提供了一个VC2005 Expres下的开发向导文件,哈哈,你只要双击那个XXvc8X.js文件,就万事OK了.WTL为你提供了丰富的程序类型.<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 上面就是我所谓的免费方案.<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;你也可以享用它.......<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><br><br>
<img src ="http://www.cppblog.com/cqjhsg/aggbug/31136.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cqjhsg/" target="_blank">山城，山</a> 2007-08-29 11:23 <a href="http://www.cppblog.com/cqjhsg/archive/2007/08/29/31136.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>