Time of Update: 2018-12-07
【聲明】嚴格來講,這篇文章不屬於我的原創。我在這裡參考了codeproject上的國外作者的模仿MSN浮出視窗的C#代碼。換句話說,可以認為我把C#代碼翻譯成了C++代碼。另外,為了簡化代碼,CloseButton我沒有採用自己繪製,而是用一個ImageButton來代替。效果:視窗浮出時,停靠於螢幕右下角的位置,這裡我借用了部落格園的表徵圖(僅用作範例),該視窗主要由使用者自訂繪製完成。同時,為了防止浮出視窗奪取焦點,SWP_NOACTIVATE標識似乎有時候並沒有很好的符合預期,因此我在重設
Time of Update: 2018-12-07
C語言不像Java,Php之類的進階語言,對象中直接封裝了字串的處理函數。C語言中進行普通的字串處理也經常會讓我們焦頭爛額……不過好在C語言 中還是提供了像strtok這樣功能強大的字串處理函數,可以幫我們實現部分需要的功能。下面我們介紹一下strtok函數的用法以及具體的使用例。 原 型:char *strtok(char *s, char *delim);功
Time of Update: 2018-12-07
今天終於開始拜讀被稱為C++聖典的《C++ Primer》,講得挺細挺全的,由於在大學時沒有把C++基礎打牢,剛出來工作就使用C++進行開發,所以覺得蠻苦的,別人比自己先走一步,自己只能通過擠時間惡補一下。言歸正傳。直接入題。c++的內建類型int、char、float等與其在電腦的儲存空間中的表示方式緊相關。電腦以位序列儲存資料,每一位儲存0或者1.在位這一級上看,儲存空間沒有結構和意義。現在大部分的電腦都使用特定位元的塊來處理儲存,塊的位元一般是2的冪,所以可以一次處理8位、16位或者32位
Time of Update: 2018-12-07
冒泡排序是一種簡單排序。這種排序是採用“冒泡策略”將最大元素移到最右邊。在冒泡過程中,相鄰兩個元素比較,如果左邊大於右邊的,則進行交換兩個元素。這樣一次冒泡後,可確保最大的在最右邊。然後執行n次冒泡後排序即可完畢。程式碼如下:// BubbleSort.cpp : 定義控制台應用程式的進入點。//#include "stdafx.h"#include <cmath>#include <iostream>using namespace std;#define
Time of Update: 2018-12-07
選擇排序也是一種簡單排序。這種排序的演算法是:首先找出最大的元素,把它移動交換到a[n-1],然後在餘下的n-1個元素中選擇最大的元素並把它移動交換到a[n-2],如此迭代下去即可完成排序。代碼如下:// BubbleSort.cpp : 定義控制台應用程式的進入點。// // SelectionSort.cpp : 定義控制台應用程式的進入點。//#include "stdafx.h"#include <cmath>#include <iostream>using
Time of Update: 2018-12-07
上一篇寫了 雙向鏈表,今天複習了迴圈鏈表,就寫了個帶有頭結點的迴圈鏈表。具體實現如下:結點類檔案(ListNode.h):template<typename T> class CircularList;template<typename T>class ListNode{public: friend class CircularList<T>; ListNode():m_pnext(NULL) { }
Time of Update: 2018-12-07
BalloonTip通常出現在位於螢幕右下角的Tray(成為通知欄,或系統托盤)的Icon上,比如使用者插拔USB裝置時的氣泡提示。該函數位於Shell32中,是通過調用下面這個API函數實現的, BOOL Shell_NotifyIcon( DWORD dwMessage, PNOTIFYICONDATA lpdata );
Time of Update: 2018-12-07
最近重新找了一下C語言的資料,深深的被c語言的底層操作特性迷戀~。在這方面,最經典的一本書莫過於清華大學出版社的《C進階公用程式設計》(王士元),在C語言進階應用程式領域裡這是我見過的寫的最好的一本書,非常可惜的這本書現在已經絕版了(可能是因為技術發展和更新的太快),在書店裡網上都無法買到了。記得本科時期經常借同學的這本書來讀,愛不釋手,裡面的知識極具魅力,即使今天看起來仍讓我覺得不是過時,而是回味無窮。這裡提到的字型檔檔案和作業系統都已經屬於古董層級了,現在可能也很難找到了。。。。
Time of Update: 2018-12-07
(1)已知一個位元影像控制代碼(HBITMAP),如何擷取位元影像的寬度和高度?在C#中非常簡單,只需要直接存取bitmap.Width和Height屬性即可。在Platform SDK中,GetBitmapDimensionEx是不能完成這個功能的(它需要事先調用SetBitmapDimensionEx),而使用GetObject函數來擷取GDIOBJECT的資訊,如下代碼: HBITMAP hBitmap; BITMAP bminfo; GetObject(hBitmap, sizeof(
Time of Update: 2018-12-07
一、printf()函數printf()函數是格式化輸出函數,一般用於向標準輸出裝置按規定格式輸出資訊。在編寫程式時經常會用到此函數。printf()函數的調用格式為: printf("<格式化字串>", <參量表>); 其中格式化字串包括兩部分內容:一部分是正常字元, 這些字元將按原樣輸出, 另一部分是格式化規定字元,以"%"開始,後跟一個或幾個規定字元用來確定輸出內容格式。
Time of Update: 2018-12-07
BREW應用的c++實現注意點 從VC6.0的調試器來說吧,肯定支援C++語言了,對於ARM或者GCC來說,也是有可用的C++編譯器,而且任何支援BREW的手機都可以運行通過ARM或者GCC編譯串連出來的目標代碼,所以從環境來說,BREW開發是可以應用C++語言的。 做過BREW開發的都知道,不論是用IWINDOW還是StateMachine,都是應用的C語言,而且編譯器也是採用的C編譯器,而對於具有優良思想的物件導向的C++語言卻應用的不多。
Time of Update: 2018-12-07
在用C++寫要匯出類的庫時,我們經常只想暴露介面,而隱藏類的實現細節。也就是說我們提供的標頭檔裡只提供要暴露的公用成員函數的聲明,類的其他所有資訊都不會在這個標頭檔裡面顯示出來。這個時候就要用到介面與實現分離的技術。 下面用一個最簡單的例子來說明。 類ClxExp是我們要匯出的類,其中有一個私人成員變數是ClxTest類的對象,各個檔案內容如下: lxTest.h檔案內容:class ClxTest { public: ClxTest(); virtual ~ClxTest(
Time of Update: 2018-12-07
在C++變數範圍(一)中說過static定義的靜態變數,補充一點的就是靜態變數從程式的開始到結束一直都是在靜態儲存區中,地址是固定的,所以對其進行的任何操作都會保留下來。變數就算在是某個函數內聲明定義,但也是會長期存在靜態區中,可並不能代表其他函數或者說其他以外的地方能夠隨便使用該變數,靜態變數歸靜態變數,但是還是會有局部和全域之分。
Time of Update: 2018-12-07
範圍的使用一定要注意,一般是以一對花括弧範圍作為一個範圍,例如一下一段函數代碼:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 Void Func(void) 2 { 3 Int i =100; 4 Int Sum=0; 5 For(int i =0;i<10;I++) 6 { 7 Sum+=i; 8 } 9
Time of Update: 2018-12-07
首先碰到的是這樣的一首題目:計算數組{1,1,2,3,5,8.......} 第30位值,不用遞迴,我寫出了以下這樣的代碼: static void Main(string[] args) ...{ int[] num=new int[30]; num[0]=1; num[1]=1; int first=num[0]; int second=num[1];
Time of Update: 2018-12-07
一、隱式載入 沒有被明確式載入但被引用的程式集,CLR會按照全域組件快取(GAC)、工作目錄(應用程式所在目錄)以及私人路徑目錄的順序來尋找並載入。二、AppDomain.Load 方法 將一個程式集載入到一個特定的程式域中,主要用來供Unmanaged 程式碼調用。三、Assembly.Load方法
Time of Update: 2018-12-07
/// <summary> /// 縮小圖片 /// </summary> /// <param name="strOldPic">源圖檔案名稱(包括路徑)</param> /// <param name="strNewPic">縮小後儲存為檔案名稱(包括路徑)</param> /// <param name="intWidth">縮小至寬度&
Time of Update: 2018-12-07
Finalize 和Dispose(bool disposing)和 Dispose() 的相同點: 這三者都是為了釋放非託管資源服務的.Finalize 和 Dispose() 和Dispose(bool disposing)的不同點: Finalize是CRL提供的一個機制, 它保證如果一個類實現了Finalize方法,那麼當該類對象被記憶體回收時,記憶體回收行程會調用Finalize方法.而該類的開發人員就必須在Finalize方法中處理 非託管資源的釋放.
Time of Update: 2018-12-07
文章出處:http://www.cnblogs.com/allenlooplee/archive/2008/06/01/1211520.html緣起 每次有新技術發布時,我們總能感受到兩種截然不同的情緒:一種是恐懼和抵抗,伴隨著這種情緒的還有諸如"C# 2.0用的挺好的,為什麼要在C# 3.0搞到那麼複雜?"或者"我還在使用C# 1.0呢?"等言辭;另一種則是興奮和擁抱,伴隨著這種情緒的還有諸如"原來這個問題在C# 3.0裡可以這麼簡單!"等言辭。
Time of Update: 2018-12-07
在做應用系統開發時,管理配置是必不可少的。例如資料庫伺服器的配置、安裝和更新配置等等。由於Xml的興起,現在的設定檔大都是以xml文檔來儲存。比如Visual