原创 Linux下Socket編程之TCP應用

現在,我們用前面所構建的socket類,重新設計《Linux下Socket編程之TCP Server端》中echo的服務器,然後設計客戶端程序。echo服務器的工作原理很簡單:1、接收客戶端傳來的信息;2、將接收到的信息原封不動的返回給客

原创 C++庫介紹

(一)、它們必須都是開源產 品,又爲什麼要是開源的呢?     1.1、十年前的國內C++學習者,可以完全不必理會開源庫,但在幾年,編程界中的人,如果敢無視開源力量, 那真夠火星的。從Java的各個流行的庫,到Java語言(實現)自身也

原创 Utf8和Gb2312相互轉化的封裝

最近遇到需要將中文在utf8格式和gb2312格式之間的轉化,寫了一個封裝類。 這個類主要利用iconv函數族編程實現。   /************************************* *頭文件   */ /******

原创 boost::any 與 boost::variant 的區別

在使用boost::any 和 boost::variant的過程中遇到幾個小問題,按個人理解對二者做了一下比較。令人最遺憾的是boost::any 與boost::serialization 不兼容。 More... boost

原创 C 標準庫的 setlocale() 函數用法

C 和 C++ 的標準庫分別有自己的 locale 操作方法,C 標準庫的 locale 設定函數是 setlocale(),而 C++ 標準庫有 locale 類和流對象的 imbue() 方法。這篇講解 C 標準庫中 setloca

原创 Linux下Socket編程之UDP應用

一。UDP版的echo Server 與TCP版的Echo Server類似,我們從Server Socket類中派生出Echo Server類。class UDPEchoServer: public UDPServerSock{publ

原创 ACE 的頭文件包含

在使用 ACE 的過程中,發現項目組程序都是在使用到那個頭文件的時候就引入一個頭文件,結果一些頭文件重複引用(在不同的文件中進行了重複引用),現在對 ACE 的頭文件進行分類整理如下: 將所有的頭文件按照功能的不同依次包含 消除互相包含

原创 __cdecl,__stdcall,__fastcall的區別

CONTENT: Visual C++ Compiler Options可以指定的Calling Convention有 3種: /Gd /Gr /Gz 這三個參數決定了: 1.函數參數以何種順序入棧,右到左還

原创 VC++下命名管道編程的原理及實現

               概述        管道(Pipe)實際是用於進程間通信的一段共享內存,創建管道的進程稱爲管道服務器,連接到一個管道的進程爲管道客戶機。命名管道(Named Pipes)是在管道服務器和一臺或多臺管道客戶機之

原创 Linux動態庫和靜態庫的建立及使用方法

和Windows系統一樣Linux也有靜態/動態鏈接庫,下面介紹創建和使用方法:假設有下面幾個文件:頭文件String.h,聲明相關函數原形,內容如下:Strlen.c:函數Strlen的實現,獲取給定字符串的長度,內容如下:Strlne

原创 C++ 標準庫的 locale 類用法

原來一篇總結了下 C 標準庫的 setlocale() 用法,這篇講解的是 C++ 標準庫中 locale 類的用法。 參考: cplusplus.com 上關於標準 C++ 中國際化支持的參考: Localization libra

原创 獲取文件和文件夾大小

************************************************************************************** 我查到兩種方法: 方法一: WIN32_FIND_DATA f

原创 C/C++ 的位操作

一、位的概念 在計算機中,一字節佔8位(現在的某些電腦也有佔16位的),也即00000000-11111111。位就是裏面的0和1。 char c=100; 實際上c應該是01100100,正好是0x64。其中高位在前,低位在後。在某

原创 WTL文件選擇對話框多文件選擇

衆所周知,CFileDialog類和CFileDialogImpl類(一個是接口類,一個是實現類)用於顯示文件打開和保存對話框,CFileDialogImpl類中最重要的兩個成員是m_ofn 和m_szFileName。但是,請注意m_s

原创 Windows靜態庫和動態庫的創建和使用

  偶們在實際的編程開發中,經常會遇到運行時無法找到某個DLL文件或者鏈接時無法找到某個LIB文件。然後,我們就開始亂GOOGLE一下,然後將VS2005的設置改變一下,或許就Ok了,我們將別人開發的DLL或者LIB導入到我們的編程中,那