Time of Update: 2018-12-07
物件導向的語言諸如JAVA提供了Interface來實現介面,但C++卻沒有這樣一個東西,儘管C++ 通過純虛基類實現介面,譬如COM的C++實現就是通過純虛基類實現的(當然MFC的COM實現用了嵌套類),但我們更願意看到一個諸如 Interface的東西。下面就介紹一種解決辦法。首先我們需要一些宏://// Interfaces.h//#define Interface class#define DeclareInterface(name) Interface name { \
Time of Update: 2018-12-07
在用C++寫要匯出類的庫時,我們經常只想暴露介面,而隱藏類的實現細節。也就是說我們提供的標頭檔裡只提供要暴露的公用成員函數的聲明,類的其他所有資訊都不會在這個標頭檔裡面顯示出來。這個時候就要用到介面與實現分離的技術。 下面用一個最簡單的例子來說明。 類ClxExp是我們要匯出的類,其中有一個私人成員變數是ClxTest類的對象,各個檔案內容如下: lxTest.h檔案內容:class ClxTest {public: ClxTest(); virtual ~Cl
Time of Update: 2018-12-07
C# 2.0 可能討論比較多的是泛型, 其次可能就是迭代器,匿名方法了. 這兩個特性其實有些本質上的不同, 泛型, 是相對1.1微軟在 IL 上面又添加了一些指令來實現. 而迭代器則是在編譯器這個層次去實現的,也就是說C# 2.0 中的迭代器的特性並沒有靠引入IL來實現. 什麼是迭代器呢,我拿一個例子來說明. 比如我們一下一段代碼list 一個特定目錄下面的所有檔案, 代碼可能會這麼寫.
Time of Update: 2018-12-07
上面的那個玩意是我做的一個flash,這並不稀奇,但是實際上我並不懂flash編程,這個有趣的東西是我用C#做出來的.我藉助了一個叫做NeoSwiff的東西做出了這個flash,它是可以嵌入到VS2003和2005中的一套開發模版,使用它,你可以輕鬆的製作出像C#
Time of Update: 2018-12-07
因項目所需,採用WORD模板作為報表系統的一部分,需要使用C#操作WORD文檔,大部分的操作都是填充表格,難度也不是很大。但是有一份報表很特殊,WORD裡面需要包含ComboBox、CheckBox控制項,如下所示:這裡關鍵的技術難題是找到OLE控制項,然後設定其某個屬性值,GOOGLE了半天,終於找到如下的代碼:private static object FindControl(string name, Word._Document document) {
Time of Update: 2018-12-07
程式中使用了平台互操作p/invoke在C#中調用MFC的DLL,在安裝有VS2008開發環境的系統中程式均可正常運行,但是複製到其它機器上就不行了,.NET FRAMEWARK也都是最新版本,不知道怎麼辦。A.dll 是別人用VC6.0開發的,裡面匯出了一個類,沒有源碼。B.dll 是對A.dll的一個封裝,VC++2008開發,將類的成員函數封裝成全域函數,並匯出。C.dll 是對B.dll的一個封裝, C#開發,使用P/Invoke調用B.dll中的函數.D.exe 是最終程式,引用了C.
Time of Update: 2018-12-07
strlcpy// Copy src to string dst of size siz. At most siz-1 characters// will be copied. Always NUL terminates (unless siz == 0).// Returns strlen(src); if retval >= siz, truncation occurred.size_tstrlcpy(char *dst, const char *src, size_t
Time of Update: 2018-12-07
Interception and Interceptors in C# (Aspect oriented programming)by Ioannis 16. January 2011 10:38 In this post, we see how to define specific actions to be executed before or after the execution of every call to a method in our code. This is also
Time of Update: 2018-12-07
例1 孫鑫視頻學習 Oct.27th 2009 Skyseraph例子1.0#include "iostream"class Point{public:void output() {}static void init() {} //靜態函數,不屬於某個具體的對象,即在未產生Point任何對象時,這個類已經存在於程式的代碼區} void main(){/*法一Point pt; //構造對象pt.init();pt.output();*///法二Point::init();/Point::
Time of Update: 2018-12-07
.NET中的集合和列表等彙總都提供了對自身進行遍曆訪問的迭代方法,集合實現IEnumerable介面,而迭代器實現IEnumerator介面。因為迭代器不能脫離彙總獨立存在,所以其本身沒有公開的建構函式,只能通過彙總建立。不同的彙總採用不同的迭代器,在IEnumerable中定義了產生迭代器的介面,即Factory 方法。如關於彙總:帽子和人關於組合:頭和人實現IEnumerable介面的類,如ArrayList等集合類實現了GetEnumerator函數,即實現了Factory
Time of Update: 2018-12-07
一 C# 與 C1 C# 通常不使用指標2 可以在一個方法裡的任何地方聲明變數,不必把聲明語句放在方法的頂端3 使用一個對象前,不一定要聲明它,可以在使用的時候再定義4 C#對結構類型的定義有些不同,它根本不支援等位型別5 C#有枚舉類型,允許一系列被命名的量(如顏色,星期)賦值為連續的數值,但文法有些不同6 C#沒有位域,也就是說,變數至少要佔用一個位元組的儲存空間7 C#不支援變長參數列表,必須針對參數值和類型定義一個方法,而C 語句允許函數的最後一個參數為可變參數數組。8
Time of Update: 2018-12-07
一、已最小化的視窗點擊“X”或“Alt+F4”時,已最小化的視窗,如:protected override void WndProc(ref Message m){const int WM_SYSCOMMAND = 0x0112;const int SC_CLOSE = 0xF060;if (m.Msg == WM_SYSCOMMAND && (int) m.WParam == SC_CLOSE){// User clicked close
Time of Update: 2018-12-07
Code highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-07
對於回呼函數的編寫始終是寫特殊處理功能程式時用到的技巧之一。先介紹一下回調的使用基本方法與原理。 1、在這裡設:回呼函數為A()(這是最簡單的情況,不帶參數,但我們應用的實際情況常常很會複雜),使用回呼函數的操作函數為B(), 但B函數是需要參數的,這個參數就是指向函數A的地址變數,這個變數一般就是函數指標。使用方法為:int A(char *p); // 回呼函數 typedef int(*CallBack)(char *p) ; // 聲明CallBack 類型的函數指標
Time of Update: 2018-12-07
為了不模糊概念在這裡我們就簡單的闡述一下類的分解,前面的教程我們著重講述了類的繼承,繼承的特點就是,衍生類別繼承基類的特性,進行結構擴張,這種逐步擴張,逐步在各衍生類別中分解彼此不同特性的過程其實就是類的分解。 分解過程筆者在這裡不想再拿代碼進行過多闡述分析了,意思說到,對於逐步分解,逐步擴張的思想就靠大家自己思考了。
Time of Update: 2018-12-07
今天的會議,Anders 的 session 座無虛席,Anders 回顧了一下C#的曆史,以及展望了未來,然後著重提了幾個特性。C# 1.0, 大概98年11月份開始組件團隊,馬上就10年了。關鍵詞:Managed Code,Managed 程式碼C# 2.0, 提出了,GenericsC# 3.0, 主要是Linq那麼C# 4.0呢?Anders 提到目前語言的幾個方向,或者是以後的趨勢Declarative,所謂聲明性語言,比如
Time of Update: 2018-12-07
在上一篇《C#4.0的dynamic和var及object關鍵字辨析》中溫習了.net 4.0的dynamic關鍵字,今天看看C#的delegate/event/Action/Func/Predicate關鍵字,它們基本上.net 2.0-3.0就有了,不是新的,但新手容易暈。回顧C#發展的曆史,C#1.0完全是模仿Java,並保留了C/C++的一些特性如struct,新學者很容易上手;C#2.0加入了泛型,也與
Time of Update: 2018-12-07
在Linux中用C語言計時可以用很多方法。 1. 如果是想使用秒層級的技術,可用使用C語言庫<time.h>內建的clock()進行計時。如: #include <iostream> #include <time.h> using namespace std; int main() { clock_t start = clock(); //do some process here clock_t end = (clock() - start)
Time of Update: 2018-12-07
通過建立兩個線程來實現對一個數的遞加。或許這個執行個體沒有實際運用的價值,但是稍微改動一下,我們就可以用到其他地方去拉。#include <pthread.h> #include <stdio.h> #include <sys/time.h> #include <string.h> #include <unistd.h> #define MAX 10 pthread_t thread[2]; pthread_
Time of Update: 2018-12-07
轉自:http://blog.csdn.net/xt_xiaotian/article/details/5648388 (轉載時順便修改了原文一處用例的錯誤)另,下載http://sourceforge.net/projects/jsoncpp我mint13的系統, 編譯jsoncpp-src-0.5.0:$ cd jsoncpp-src-0.5.0$ sudo apt-get install scons$ scons platform=linux-gcc$ sudo cp