原创 appeal to recycling

Ladies and gentlemen, thank you for coming to today's talk about environmental changes. I cannot stress enough how impo

原创 生產者消費者模型(爲什麼使用兩個信號量?)

生產者消費者模型中需要2個信號量,1個互斥量。大致過程如下: P操作:             申請資源,S=S-1。如果S>0,則繼續。否則線程阻塞,放入等待隊列。 V操作:             釋放資源,S=S+1。

原创 C++ function、bind以及lamda表達式

本文是C++0x系列的第四篇,主要是內容是C++0x中新增的lambda表達式, function對象和bind機制。之所以把這三塊放在一起講,是因爲這三塊之間有着非常密切的關係,通過對比學習,加深對這部分內容的理解。在開始之間,首先

原创 協議設計和架構

1、        IDM項目中控制報文的確認機制以及socket使用方式: 1)串行方式: 即在進行下一個業務之前,當前業務必須完成“發送-接收確認”的過程。這種方式不需要ack隊列,因爲當前業務未完成之前,不會開始下一個業務,所以收到

原创 編譯和編譯選項

1、        動態鏈接庫的編譯 Windows下編譯動態鏈接庫需要加關鍵字__declspec,如下: dll的導入:__declspec(dllimport) dll的導出:__declspec(dllexport)   Linu

原创 調試和排錯

1、        調試bug的幾種方法 1)排除法,可是通過逐段註釋代碼,運行程序,可問題是否重現。如果註釋某段代碼後,問題消失,則可將問題定位到該段代碼。 2)加強條件法,如果一個問題需要很長時間才能復現,則可以猜測問題的所在,加強其

原创 關於在析構函數中釋放內存

當你提供的API需要分配內存時,可以考慮創建一個對象保存新分配內存的地址,然後在對象析構時釋放內存。這樣用戶不用擔心忘記釋放內存。 需要注意的是,如果用戶創建了這種對象並得到新分配的內存地址後,並不立即處理,而是放到一個隊列中,這個時候需

原创 boost posix_time/time_duration/date 的基本用法

頭文件和命名空間 #include <boost/date_time/posix_time/posix_time.hpp> using namespace boost::posix_time; using namespace boost

原创 查詢GetLastError返回值含義的方法

net helpmsg errorno 比如 net helpmsg 10093 Either the application has not called WSAStartup, or WSAStartup failed.

原创 組播程序示例

小結: 1. 發送端也需要綁定網卡地址,目的是告訴協議棧,發送端的數據要往哪個子網“廣播”。 2. 接收端bind綁定的地址與組播毫無關係,如果一個

原创 要點

1、函數調用堆棧 2、如何知道異步IO什麼時候完成 3、單項鍊表逆序 4、策略模式如何實現動態調用 5、編譯的兩個階段

原创 Qt VS2010 編譯static版本

參考文章qt http://blog.csdn.net/aslucky/article/details/6299319 編譯步驟如下 C:\D_Dr

原创 wchar_t*和 char*之間的轉換

把char*轉換爲wchar_t* 用stdlib.h中的mbstowcs_s函數,可以通過下面的例子瞭解其用法:   char *CStr = "string to convert"; size_t len = strle

原创 report for economy analysis

The Recycling industry is slowly on the road to recovery after going through an economic rollercoaster ride. A year ago

原创 VS2010 cannot attach x64 process on x64 machine

My VS2010 was installed on x64 machine. I find that it cannot attach x64 process but it works well when attaching x86 p