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
上面的那個玩意是我做的一個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
例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
RegistryKey rkey = Registry.LocalMachine; //The second parameter tells it to open the key as writable RegistryKey rkey1 = rkey.OpenSubKey("Software",true); RegistryKey rkey2 =
Time of Update: 2018-12-07
很多STL algorithm都是_if結尾的,讓我們可以帶function進去,若配合function object,可讓function更有彈性!!以下的範例想利用count_if()
Time of Update: 2018-12-07
在(原創) 如何動態建立二維陣列(多維陣列)? (高級) (C)中,我們看到用C語言動態建立二維陣列並不是件容易的事情,但在C++有沒有更好的解法呢?在(原創) 如何動態建立一維陣列? (初級) (C/C++)
Time of Update: 2018-12-07
.NET中的集合和列表等彙總都提供了對自身進行遍曆訪問的迭代方法,集合實現IEnumerable介面,而迭代器實現IEnumerator介面。因為迭代器不能脫離彙總獨立存在,所以其本身沒有公開的建構函式,只能通過彙總建立。不同的彙總採用不同的迭代器,在IEnumerable中定義了產生迭代器的介面,即Factory 方法。如關於彙總:帽子和人關於組合:頭和人實現IEnumerable介面的類,如ArrayList等集合類實現了GetEnumerator函數,即實現了Factory
Time of Update: 2018-12-07
C#委託Firstly,let us look back on function pointer in c, the following is an example.Function Pointer#include "stdafx.h"#include "stdio.h"#include "stdlib.h"int (*Test)(int l); //定義函數指標int Add(int t){return t+t;}int Mut(int t){return t*t;}//把函數做參數int
Time of Update: 2018-12-07
1、首先資料庫: f_id 項目ID號 ,f_front 父ID號 ,f_name名稱,f_type類型,f_layer所處層,f_order 同層的順序號;(f_layer,f_order不要也可,這裡我主要是需要同層排序才用到)2、然後“select f_id,f_front,f_name,f_type from data”取得DataSet資料集dsFrame;treeview 名稱設為tvDept3、寫函數 構建treeveiw樹形:public void AddTree(int
Time of Update: 2018-12-07
1.調用COM組件:Type type = Type.GetTypeFromProgID("VisualPHD.Data"); dynamic phd = Activator.CreateInstance(type);phd.HostName = "192.168.53.186";2. 反射調用dotNet類Type type = Type.GetType("ConsoleApplication1.Test"); dynamic t =
Time of Update: 2018-12-07
.net運行時:也稱通用語言執行平台(Commen Language Runtime)或CLR,它實際管理代碼。他可以處理載入程式,運行程式的代碼,以及提供所有支援服務的代碼。 受管制的代碼:在.net環境中啟動並執行任何代碼都稱為受管制的代碼(managed code)。.net外部的其他代碼也運行在window上,這些代碼稱為未受管制的代碼(unmanaged code)。 中繼語言(IL intermediate
Time of Update: 2018-12-07
C# 出來也有些日子了,最近由於編程的需要,對 C# 的類型轉換做了一些研究,其內容涉及 C# 的裝箱/拆箱/別名、數實值型別間相互轉換、字元的 ASCII 碼和 Unicode 碼、數值字串和數值之間的轉換、字串和字元數組/位元組數組之間的轉換、各種數實值型別和位元組數組之間的轉換、十六進位數輸出以及日期型資料的一些轉換處理,在這裡與大家分享——1. 裝箱、拆箱還是別名 許多 C#.NET 的書上都有介紹 int -> Int32
Time of Update: 2018-12-07
使用vector.insert將array轉vector,雖然也是一行完成,但不是那麼直觀,建議還是用constructor的方式將array轉std::vector。 1/**//* 2(C) OOMusou 2006 http://oomusou.cnblogs.com 3 4Filename : ArrayToVectorByInsert.cpp 5Compiler : Visual C++ 8.0 6Description : Demo how to convert arr
Time of Update: 2018-12-07
shell c 混合編程 system 輸出資料到變數方法一: (popen)#include <stdio.h>#include <stdlib.h>int main( int argc, char *argv[] ){ FILE *fp;int status;char path[1035];/* Open the command for reading. */ fp = popen("/bin/ls /etc/", "r");if (fp == NULL) {
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
1. Main方法(入口)唯一的四種格式:static voidMain(string[] args)static voidMain()static intMain(string[] args)static intMain()C#中一個項目只允許一個Main入口,且大寫!Main方法傳回值只為void or int 前面沒有修飾符2. 資料類型方面。a) C#定義了struct(結構),不能是抽象的,也不能被繼承,是實值型別的。b)
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)