先看程序:
#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;
}
再調試,不是有“中文”了?
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
今天打開gmail處理一封為關于為客戶配置安全網關方案的郵件,無意中在gmail的右邊欄中,發現一個“秘密”,注意“祥細了解...".那里

gmail 居然根據我的郵件內容向我投放了類似廣告內容:安全網關與防火墻,VPN是功能類似的產品。
感想一:gmail做的真不錯,能根據內容投防廣告。
感想二:gmail會不會根據我的郵件提取商機信息?進一步,他會不會出賣我的商機信息?
感想三:如果我的郵件談論了一些個人隱私、組織敏感信息、商業情報、國家秘密。。。我是不是會被盯上。。。
突然感覺我在gmail里是一絲不掛的了。。。。


軟件設計過程是不是有點先“盲人摸象”后“庖丁解牛”的味道,從摸清楚個別部分到組裝成整體,到最后達到見木又見森林的,設計起來游刃有余。
弄一個既免費,又專業,又功能強大的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為你提供了豐富的程序類型.
上面就是我所謂的免費方案.
你也可以享用它.......
窗口系統都的自已的消息或事件處理機制.在自有的應用系統中,在編寫GUI時一般我們都會依賴這個機制作出一些事件/時機的判斷.這里有個設想:一種處理方式是,在捕獲到這些事件/時機時,又通過這個消息機制去觸發新的(想發生的事件).另一種是直接了當的,自已寫一個事件處理機制,自已處理掉...
(編寫中遇上的一點感想..)
高舉C++和Java的偉大旗幟,在無數coder先驅開辟的道路上前進。。。。