原创 完整的消息設計包含的內容

一個完整的消息一般應包括以下幾方面: 可以容納各種數據類型及其組合。包括基本的數據類型、二進制流、複雜對象的數組可以在一個消息體中包含多種遠程調用請求及參數可以組合表述大數據流跨平臺可以容納不同的消息版本

原创 XML消息表示法

最近工作要求搭建一個C/S的應用,涉及到消息的傳輸。 XML中傳輸二進制數據的方法有兩種,一種是直接將二進制字節轉換爲十六進制的字符表示,另一種是將二進制編碼成base64編碼,另一端反過來轉換即可。 JSON也可以使用這種方法表示。

原创 VisualSVN2.5終於可以正常使用了

找了個DLL的包,覆蓋掉,雖然提示說是No License,但還是能正常使用。 比較不爽的是,如果使用VisualSVN更新解決方案的配置文件,那麼VS2010更新時需要花費較長的時間。 改進的地方是,可以提交目錄中保護的.h類型文件了

原创 Mutex的簡單封裝

class CMutexAssist { CMutexAssist(boost::mutex *mutex) { m_pMutex = pMutex; m_pMutex->lock(); }

原创 原來OneNote的文字識別功能如此強大

有個同事需要將掃描的圖片中文字拷貝出來,做成文本文檔。Google了下,發現OneNote的評價比較高。試用了下,發現識別率確實很高,很強大啊。 PS:知識面還是太窄了,Office 2003就開始有的功能,我到現在才知道。

原创 thrift0.8.0支持win7的方法

thrift0.8.0不支持Win7環境(XP沒試過)。要想開啓支持,必須修改thrift的源代碼。 修改的代碼如下 void TServerSocket::listen() { #ifdef _WIN32 WSADATA wsa

原创 命名空間重名解決方法

在一個.h文件裏使用了boost類庫,另一個文件包含此頭文件後,出現hash重名情況。 解決方法:給自己的hash命名空間重命名。 心得:所有自己的類名或命名空間應該有特殊標記,不容易有重名情況發生。

原创 vs2010 去掉指定的編譯器警告

引入boost庫的某些功能,編譯時產生很多警告,看的特煩。 在工程選項中->配置屬性-C/C++->命令行,其他選項中加入 /wd4251 其中,4251爲特定的編譯警告。記得w一定要小寫。 這下輸出信息乾淨多了。

原创 CFileDialog過濾的用法

很久沒有碰過界面部分的代碼了,今天用到文件打開的對話框。 LPCTSTR strFilter = L"txt文件(*.txt)|*.txt|CSV文

原创 std::string的另類用法

網絡數據流傳輸經常會碰到buffer 處理,總是不停new delete會很煩瑣。雖然有boost智能指針可以維護,但感覺代碼太長,而且還是得new指針出來。 一個替代方案是使用string的另類用法。將buffer直接存於string中

原创 thrift IDL文件include的使用

thrift可以包含另外一個thrift文件。 include “Sample.thrift" 要使用Sample.thrift中的結構或者變量,一定要加Sample前綴,也就是文件名做爲類型名的前綴。如:Sample.XXX。切記是文

原创 關於休假

連着幾個月,迭代一個接一個,大家都快喘不過氣了。今天終於可以輕鬆下了。 考慮項目組休假的事,不知道去哪兒玩呢。 不過這些都是屬於幸福的煩惱啦。

原创 vs2010中看不見類視圖和資源視圖的解決方法

有天vs2010工程中,類視圖和資源視圖看不見了。 解決方法是:先關掉工程,將工程對應的擴展名爲.suo和.sdf刪除,重新打開解決方案,問題解決。

原创 svn tree conflicts 解決方法

svn resolve --accept working -R XXX。 其中XXX爲提示衝突的目錄。

原创 Ubuntu12.04 DNS設置重啓後丟失解決方法

#sudo vi /etc/network/interfaces dns-nameservers 192.168.58.11 #sudo /etc/init.d/networking restart 補充:DNS最好設置在/etc/