原创 Windows Socket 最大連接數

 Socket 編程時,單機最多可以建立多少個 TCP 連接,受到操作系統的影響。 Windows 下單機的TCP連接數受多個參數影響: 最大TCP連接數 [HKEY_LOCAL_MACHINE \System \CurrentCon

原创 比較與整理GDI與GDIPlus抓取、合併和保存位圖的方法

/** @defgroup COMPARE_GDI_GDIPlus @brief    比較與整理GDI與GDIPlus在抓取、合併和保存位圖之間的不同 @author   華仔103 @date     2009-01-14 @{ \*

原创 原碼, 反碼, 補碼 詳解

作者:張子秋 出處:http://www.cnblogs.com/zhangziqiu/ 本篇文章講解了計算機的原碼, 反碼和補碼. 並且進行了深入探求了爲何要使用反碼和補碼, 以及更進一步的論證了爲何可以用反碼, 補碼的加法計算原碼的

原创 行爲型模式—狀態模式

1. 狀態模式(State Pattern)的定義 (1)定義:允許一個對象在其內部狀態改變時改變它的行爲。對象看起來似乎修改了它的類。   ①狀態和行爲,它們的關係可以描述爲“狀態決定行爲”   ②因狀態是在運行期被改變,行爲也會在運行

原创 WINDOWS內核對象

 載。 WINDOWS內核對象   一.前言   Windows中有很多像進程對象、線程對象、文件對象等等這樣的對象,我們稱之爲Windows內核對象。內核對象是系統地址空間中的一個內存塊,由系統創建並維護。內核對象爲內核所擁有

原创 第1章 UML基礎:類的關係

1. 類的關係 1.1 繼承和實現:繼承表示有父子關係   1.2 依賴:(use–a),表示一個類要使用(use)另一個類。 (1)類圖   (2)三種依賴方式:函數參數或返回值、局部變量和靜態成員變量或函數 class C21 {

原创 設計模式之23種常用模式

在常用的23種設計模式中,根據設計模式的功能,我們又可以把這23個設計模式分爲三大類:創建類模式,結構類模式,行爲類模式; 創建類模式 工廠方法模式,定義一個用於創建對象的接口,讓子類決定實例化哪一類,使一個類的實例化 延遲到其子類;建造

原创 C++成員函數的存儲方式

用類去定義對象時,系統會爲每一個對象分配存儲空間。如果一個類包括了數據和函數,要分別爲數據和函數的代碼分配存儲空間。按理說,如果用同一個類定義了10個對象,那麼就需要分別爲10個對象的數據和函數代碼分配存儲單元,如圖8.4所示。 圖8.

原创 c運行庫、c標準庫、windows API都是什麼玩意

 C運行庫和C標準庫的關係 C標準庫,顧名思義既然是標準,就是由標準組織制定的。是由“美國國家標準協會(American National Standards Institute,ANSI)”爲了規範C語言庫而制定的標準。在最初,各

原创 Node.js開發入門—Buffer用法詳解

 Node.js中有一個Buffer類,必須要介紹一下,因爲我們在使用Node.js做服務端開發時,http、tcp、udp、文件io等等類型的操作,都會用到Buffer,離開它基本沒辦法玩兒下去。 Buffer是什麼 JavaScr

原创 C++標準庫與STL的關係

 STL即標準模板庫(Standard Template Library),它包括五大類組件:算法、容器、迭代器、函數對象、適配器。 STL是C++標準庫的一部分,但不是全部。C++標準庫是std名字空間中的所有內容,就是那些不帶.h

原创 一個BYTE轉16進制字符串的函數

std::string byteToHexStr(unsigned char byte_arr[], int arr_len) { std::string hexstr; for (int i=0;i<arr_len;i++) {

原创 c++類對象的內存模型

c++類對象的內存模型 C++類對象內存結構    首先介紹一下C++中有繼承關係的類對象內存的佈局:在C++中,如果類中有虛函數,那麼它就會有一個虛函數表的指針__vfptr,在類對象最開始的內存數據中。之後是類中的成員變量的內存數

原创 軟件架構設計經典書籍有哪些

  1.軟件架構設計作者: 溫昱內容簡介:本書緊緊圍繞“軟件架構設計”這一主題,立足實踐解析了軟件架構的概念、闡述了切實可行的軟件架構設計方法、提供了可操作性極強的完整的架構設計過程。另外,本書從思維方式的突破、面向對象設計、UML建

原创 多字節與UTF-8、Unicode之間的轉換 .

  // 多字節編碼轉爲UTF8編碼 bool MBToUTF8(vector<char>& pu8, const char* pmb, int32 mLen) {  // convert an MBCS string to widech