Time of Update: 2018-12-07
C/C++編程規範精述(匈牙利命名法)1、排版上不同小結構間要空行分開,子邏輯項相對父邏輯項要縮排;{及if,while等判斷語句應獨佔行並對齊,且後加空格以顯突出。2、注釋位於相應代碼上面或右旁邊。且與其它代碼空行或空格隔開。3、變數命名風格:採用UNIX 的全小寫加底線的風格或大小寫混排的方式,不要使用大小寫與底線混排的方式,但用作特殊標識如標識成員變數或全域變數的m_和g_,其後加上大小寫混排的方式是允許的。定義標識符(變數名/函數名)應體現code is
Time of Update: 2018-12-07
(本系列文章由檸檬的(lc_mtt)原創,轉載請註明出處,謝謝~) 執行 許多人都知道 ShellExecute ,用於執行一個外部命令。但對於 IShellFoloder 對象來說,它的執行命令,都在它的 ContextMenu 裡面了。記得前幾節說過如何直接調用 ContextMenu 裡的項,因此,執行一個 IShellFoloder,也無非是調用它的 ContextMenu 裡預設的項而已://存放 PIDL 的數組 IntPtr[] pidls = new IntPtr[1
Time of Update: 2018-12-07
(本系列文章由檸檬的(lc_mtt)原創,轉載請註明出處,謝謝~) 上一節說到如何彈出 IShellFolder 的操作功能表,也就是 IContextMenu。有時候我們需要在這個菜單上面,加入一些屬於自己的功能表項目。舉個例子,你開啟資源管理員,查看左邊分類樹的右鍵菜單,會發現頂層多了一個摺疊/展開的功能表項目。好,我們也動手來加入這個功能表項目。 修改例子3,我們找到 QueryContextMenu 處,這時候提供了一個菜單控制代碼://提供一個彈出式菜單的控制代碼 IntPtr
Time of Update: 2018-12-07
第一章 什麼是ActiveX一種Internet策略 ActiveX是以一種Internet策略出現的。它包含了OLE,COM及Internet開發的各個方面。 ActiveX開發涉及範圍廣泛 ActiveX開發的包含了許多方面,比如Automation 伺服程式,ActiveX控制項,COM對象等等。
Time of Update: 2018-12-07
,分別建立用戶端項目ROTestClient,服務端項目ROTestServer路徑分別為ROTest\Client 和 ROTest\Server先從服務端開始,使用ServiceBuilder建立服務端方法建立新的服務取名為TestService ,點擊“Add Operation”建立新的方法建立新方法“AppendString”,包含a ,b 兩個字串參數,傳回值為字串string關閉對話方塊,儲存至ROTest\Server目錄,命名檔案為“TestService”給ROTestSer
Time of Update: 2018-12-07
(本系列文章由檸檬的(lc_mtt)原創,轉載請註明出處,謝謝~)Windows Shell 編程,即 Windows 外殼編程。我們所看到的資源管理員以及整個案頭,都是一個 Shell。關於 Windows 外殼的基本概念,我這裡不做詳細介紹,不瞭解的朋友,可以看看 薑偉華 的 Windows外殼名字空間的瀏覽。好,現在讓我們從基礎學起,早日做出一個強大的資源管理員軟體。(偶也是初學者,多多指教)1 -
Time of Update: 2018-12-07
1、建構函式初始化式只在建構函式的定義中而不是聲明中指定。2、從概念上講,可以認為建構函式分兩個階段執行:(1)初始化階段;(2)普通的計算階段。計算階段由建構函式函數體中的所有語句組成。不管成員是否在建構函式初始化列表中顯式初始化,類類型的資料成員總是在初始化階段初始化。初始化發生在計算階段開始之前。3、使用建構函式初始化列表的版本初始化資料成員,沒有定義初始化列表的建構函式版本在建構函式函數體中對資料成員賦值。4、沒有預設建構函式的類類型的成員,以及 const
Time of Update: 2018-12-07
1、所謂泛型程式設計就是以獨立於任何特定類型的方式編寫代碼。使用泛型程式時,我們需要提供具體程式執行個體所操作的類型或值。 在泛型程式設計中,我們所編寫的類和函數能夠多態地用於跨越編譯時間不相關的類型。2、模板是泛型程式設計的基礎。3、物件導向編程的多態性稱為運行是多態性,應用於存在繼承關係的類,我們能夠編寫這樣的代碼,忽略於基類與衍生類別之間的類型差異。泛型程式設計所依賴的多態稱為編譯時間多態性或參數式多態性。4、模板定義以關鍵字 template
Time of Update: 2018-12-07
1、用const char*實參調用如下模板,則比較的是指標值,而不是指向的字串。此時需要模板特化。樣本template <typename T>int compare(const T &v1, const T &v2){if (v1 < v2) return -1;if (v2 < v1) return 1;return 0;}2、函數模板的特化:一個或多個模板形參的實際類型或實際值是指定的。• 關鍵字 template 後面接一對空的角括弧(<&
Time of Update: 2018-12-07
1、顯式建構函式複製建構函式是一種特殊建構函式,具有單個形參,該形參(常用 const
Time of Update: 2018-12-07
1、轉換分為到類類型與從類類型的轉換兩種。到類類型的轉換:通過轉換建構函式;從類類型的轉換:轉換操作符。2、常用16個操作符:5個算術操作符(+、-、*、/、%)及其對應的複合賦值操作符,4 個關係操作符(<、<=、>、>=),以及相等操作符(==、!=)。樣本class SmallInt{public:SmallInt(int i = 0):val(i){//...}operator int() const {return val;}
Time of Update: 2018-12-07
1、命名空間能夠劃分全域命名空間。一個命名空間是一個範圍。2、命名空間可以在全域範圍或其它範圍內部定義,但不能在函數或類內部定義。可以在命名空間中放入可以出現在全域範圍的任意聲明。3、命名空間範圍不能以分號結束。4、命名空間是累積的。一個命名空間的分離部分可以分散在多個檔案中。樣本namespace namespace_name{}
Time of Update: 2018-12-07
1、聯合(union)是一種特殊的類。一個union對象可以有多個資料成員,但是任何時刻,只有一個成員可以有值。當將一個值賦給union對象的一個成員的時候,其他所有成員都變為未定義的。每個 union
Time of Update: 2018-12-07
1、成員指標(pointer to member)包含類的類型以及成員的類型。成員指標只應用於類的非static成員。static類成員不是任何對象的組成部分,所以不需要特殊文法來指向static成員,static成員指標是普通指標。通過指定函數的傳回型別,形參表(類型和數目,是否為const)和所屬類來定義成員函數的指標。2、使用類成員的指標 類似於成員訪問操作符 . 和 ->,.* 和 ->
Time of Update: 2018-12-07
1、C++中,每個運算式都會產生一個結果,通常是將操作符作用到其運算元所產生的值。當操作符是輸出操作符時,結果是左運算元的值。也就是說,輸出操作返回的值是輸出資料流本身。2、注釋對不可嵌套。指/**/3、我們使用istream對象作為while的測試條件時,結果是測試流的狀態,如果是流是有效(輸入的是有效字元或沒有到達檔案結尾),則測試成功。4、因為標頭檔使用角括弧是找標頭檔的時候先從系統目錄下找,雙引號是先從工程所在的目錄下找,所以一般,標準庫的標頭檔用角括弧,非標準庫用雙括弧。5、預設情況下
Time of Update: 2018-12-07
1、只有在定義之後,類才可以用作多重繼承的基類。按照基類建構函式在衍生的資料行表中的出現次序調用。2、多重繼承中,衍生類別的指標或引用可以轉換為任意基類的指標或引用。3、當一個類繼承於多個基類的時候,那些基類之間沒有隱含的關係,不允許使用一個基類的指標訪問其它基類的成員。4、在虛繼承下,對給定虛基類,無論該類在派生層次中作為虛基類出現多少次,只繼承一個共用的基類子物件。5、特定衍生類別執行個體的優先順序高於共用虛基類執行個體。6、在虛派生中,由最低層衍生類別的建構函式初始化虛基類。7、無論虛基類
Time of Update: 2018-12-07
1、在一個類內部再定義另外一個類,這樣的類稱為嵌套類(nested class),也稱為巢狀型別(nested type)。嵌套類最常用於執行類。嵌套類是獨立的類,基本上與它們的外圍類不相關,因此,外圍類和嵌套類的對象是互相獨立的。巢狀型別的對象不具備外圍類所定義的成員,同樣,外圍類的成員也不具備嵌套類所定義的成員。範例程式碼template <class Type> class Queue{//interface functions to Queue are
Time of Update: 2018-12-07
9、正如定位new(placement new expression)運算式是使用allocator類的construct成員的低級選擇,可以使用解構函式的顯式調用作為調用destroy函數的低級選擇。範例程式碼for (T *p = first_free; p != elements; /*empty*/)alloc.destroy(--p);//上式表達與下式表達等價p->~T();10、顯式調用解構函式是清除對象本身,並沒有釋放對象所佔的記憶體;調用operator
Time of Update: 2018-12-07
1、system(執行shell 命令)相關函數 fork,execve,waitpid,popen表標頭檔 #include<stdlib.h>定義函數 int system(const char * string);函數說明 system()會調用fork()產生子進程,由子進程來調用/bin/sh-cstring來執行參數string字串所代表的命令,此命令執行完後隨即返回原調用的進程。在調用system()期間SIGCHLD 訊號會被暫時擱置,SIGINT和SIGQUIT
Time of Update: 2018-12-07
[轉]Visual C++ Inline Assembly 簡介 如果你想編寫出極高效能的遊戲代碼,那麼使用組合語言無疑將會是你的最佳選擇。不過,眼看著編程技術已經發展到了今天這種格局,你再去直接用組合語言來進行編程也未免太不合時宜了吧。作為一個高效能遊戲程式的編寫者,你應該用的是 Inline Assembly。什麼是 Inline Assembly Inline Assembly 就是我們通常所說的線上彙編,即直接在你的 C/C++