看前面黑咚咚,待俺上前杀它个干干净净。。。

 

wchar_t 宽字节流写入中文的问题

先看程序:
#include "stdafx.h"
#include <fstream>
int _tmain(int argc, _TCHAR* argv[])
{
     std::wofstream   test(L"Test.Log");
     test << L"hello 中文";

     return 0;
}

UNICODE编译、调试;结果中Test.Log文件的内容只有“hell”没有“中文”。

这是因为C++标准库的国际化设计问题,你需要设置locale。

#include "stdafx.h"

#include <fstream>
#include <locale>

int _tmain(int argc, _TCHAR* argv[])
{
 std::wofstream   test(L"Test.Log");

 test.imbue( std::locale("CHS") );

 test << L"hello 中文";

 return 0;
}

再调试,不是有“中文”了?

posted @ 2010-05-23 13:15 山城,山 阅读(912) | 评论 (0)编辑 收藏

在boost_1_43_0中编译Boost.Log

Boost.Log 已被Boost库正式接受,但还没有包括在1.43.0版本中,下面是我在Boost_1_43_0中编译它的办法:

环境:
1.Boost库1.43.0版,下载地址 http://www.boost.org;
2.Boost.Log  1.0版,下载地址 http://sourceforge.net/projects/boost-log/;
3.编译工具VS2008

编译:
1、解压 boost_1_43_0,  解压 Boost-log-1.0.zip;
2、将Boost-log-1.0\boost下的Log目录拷入boost_1_43_0\boost目录中;
3、将Boost-log-1.0\libs下的Log目录拷入boost_1_43_0\libs目录中;
4、从开始\程序组中,进入VS2008 命令提示-DOS窗口;
5、切换到boost_1_43_0的根目录,执行bootstrap.bat文件,将生成bjam工具;
6、执行命令 bjam
7、将生成boost 库文件(boost_1_43_0\stage),其中包括log的库文件。


后记。上面的懒办法带来的是长时间编译时间等待和大量硬盘空间被占用,且生成的大部分文件你根本就不会用到。
建议是了解一下bjam命令,只编译你需要的库,如下编译Boost.Asio:
bjam --with-system --with-thread --with-date_time --with-regex --with-serialization stage

posted @ 2010-05-17 19:20 山城,山 阅读(2247) | 评论 (0)编辑 收藏

你会不会被盯上?

    今天打开gmail处理一封为关于为客户配置安全网关方案的邮件,无意中在gmail的右边栏中,发现一个“秘密”,注意“祥细了解...".那里

gmail 居然根据我的邮件内容向我投放了类似广告内容:安全网关与防火墙,VPN是功能类似的产品。

感想一:gmail做的真不错,能根据内容投防广告。

感想二:gmail会不会根据我的邮件提取商机信息?进一步,他会不会出卖我的商机信息?

感想三:如果我的邮件谈论了一些个人隐私、组织敏感信息、商业情报、国家秘密。。。我是不是会被盯上。。。

突然感觉我在gmail里是一丝不挂的了。。。。

posted @ 2009-11-05 09:21 山城,山 阅读(416) | 评论 (3)编辑 收藏

盲人摸象与庖丁解牛

 

 
 软件设计过程是不是有点先“盲人摸象”后“庖丁解牛”的味道,从摸清楚个别部分到组装成整体,到最后达到见木又见森林的,设计起来游刃有余。

posted @ 2009-10-30 16:01 山城,山 阅读(636) | 评论 (0)编辑 收藏

免费C++开发环境的搭建(此贴有误)

弄一个既免费,又专业,又功能强大的C++开发环境是现实存在,它不是梦.
我的方案是:
VC 2005 Express
PSDK
ResEdit

      VC 2005 Express 不是只能写"hello Bill :)"之类的控制台程序,它一样可能开发win32程序,这在MSDN中都有说明,同正式版相比.除了不具备资源编辑器之外,功能同正式版是一样的.
      要开发win32程序,光VC2005 Express是不够的,你还得需要PSDK,这也是免费的,你需要下载.
      至于如何安装设置,我就不详说了,你google吧,现成的多的是.

        RegEdit是个免费的资源编辑器,它可以用来补充vc 2005 Express的不足.
         (但我用它时,发现对中文支持不好,后找了个resource builder来用,它是收费的.试用期只有30天.resource builder 功能强大, 确实不错,还有即时测试功能, 嗳,只采取另一种方式来用resource builder了 :-)  ).

        我是在用WTL 8.0,WTL要命的还提供了一个VC2005 Expres下的开发向导文件,哈哈,你只要双击那个XXvc8X.js文件,就万事OK了.WTL为你提供了丰富的程序类型.

        上面就是我所谓的免费方案.

         你也可以享用它.......
      
      


posted @ 2007-08-29 11:23 山城,山 阅读(554) | 评论 (1)编辑 收藏

一个设想和疑问?

窗口系统都的自已的消息或事件处理机制.在自有的应用系统中,在编写GUI时一般我们都会依赖这个机制作出一些事件/时机的判断.这里有个设想:一种处理方式是,在捕获到这些事件/时机时,又通过这个消息机制去触发新的(想发生的事件).另一种是直接了当的,自已写一个事件处理机制,自已处理掉...
(编写中遇上的一点感想..)

posted @ 2007-01-22 09:28 山城,山 阅读(373) | 评论 (0)编辑 收藏

开篇记

高举C++和Java的伟大旗帜,在无数coder先驱开辟的道路上前进。。。。

posted @ 2007-01-18 09:43 山城,山 阅读(213) | 评论 (0)编辑 收藏

仅列出标题
共2页: 1 2 

导航

统计

常用链接

留言簿

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜