Time of Update: 2018-12-07
我在上一篇文章中已經講解了一般網站的登入原來和C#的登入實現,很多人問到對於使用了驗證碼的網站該怎麼辦,這裡我就講講驗證碼的原理和對應的登入方法。驗證碼的由來幾年前,大部分網站、論壇之類的是沒有驗證碼的,因為對於一般使用者來說驗證碼只是增加了使用者的操作,降低了使用者的體驗。但是後來各種灌水機器人、投 票機器人、惡意註冊機器人層出不窮,大大增加了網站的負擔同時也給網站資料庫帶來了大量的垃圾資料。為了防止各種機器人程式的破壞,於是程式員想出了只有
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#壓縮ACCESS檔案因為自己的空間服務商上傳檔案有大小限制,我怕以後資料庫太大了無法拉下來壓縮,在網上找到以下解決方案先引用COM Microsoft Jet and Replication Objects X.X library string strS="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\zjren\\db\\my.mdb;";//需要被壓縮的檔案 string
Time of Update: 2018-12-07
現在有很多網路管理軟體都具備網路上資訊即時傳送的功能,雖然有些網路通訊軟體功能比較強大,有的軟體不僅可以傳送文本資訊,還可以傳送二進位檔案等。但它們都有一個無法克服的缺點,那就是分發比較困難,資訊傳送雙方電腦都需要安裝通訊軟體的用戶端和伺服器端軟體,並且只有但雙方都開啟相應軟體時,才可能進行資訊傳送。而信使通訊就可以克服上述缺點,由於信差服務在Windows 2000系統以上都是內建的,並且此服務在安裝完Windows 2000以上後的預設狀態是開啟的。所以只要網路的二台電腦安裝Windows
Time of Update: 2018-12-07
C#設計模式系列讀書筆記----前言 本人寫這個C#設計模式系列讀書筆記之目的非常簡單,就是把自己在看C#設計模式過程中的一些認為比較精典的東西做個筆記,為自己和他人服務.當然我也看過園子裡一些大師們的作品.如有不妥之處,請指點.哈哈... 首先,大家都知道"設計模式"共23種,分為三種類型. 設計模式分成三類:建立型,結構型,行為型. 建立型模式是建立對象而不是直接執行個體化對象,這會使程式在判
Time of Update: 2018-12-07
有關GPRS、CDMA開發的文章網上已經有不少,但是由於Windows Mobile SDK提供的GPRS、CDMA串連操作的庫只有C++版本的(即Connection Manager
Time of Update: 2018-12-07
1.單獨編譯:跟C語言一樣,C++也允許甚至鼓勵程式員將組件函數放在獨立的檔案中。2.程式結構:包括三部分: 標頭檔:包含結構聲明和使用這些結構的函數的聲明 原始碼檔案:包含與結構有關的函數的代碼 原始碼檔案:包含調用與結構相關的函數的代碼 標頭檔常包含的內容如下: (1)函數原型 (2)使用#define或const定義的符號常量 (3)結構聲明 (4)類聲明 (5)模板聲明 (6)內聯聲明3.include標頭檔 角括弧和雙引號的區別:
Time of Update: 2018-12-07
1.數組名其實是個地址。2.結構體訪問成員,如果是指標則採用 “->”成員操作符,如果是結構名,則採用“.”成員操作符。3.共用體(union)能夠儲存不同的資料類型,但是只能同時儲存其中的一種資料類型。就是說,結構可以同時儲存int、char和long類型,而共用體只能儲存int、char或long類型。4.指標:用於儲存地址的。指標名表示地址,*操作符稱為間接值,或解除引用操作符. int* pointer 中 int* 是個類型,是個指向int的指標(地址)。 使用new和delet
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
今天看到C++指標,就順便溫習下 指標和引用的區別。。1. 首先就是 引用必須被初始化,而指標不必。所以如果你使用一個變數並讓它指向一個對象,但是該變數可能在某些時候不指向任何對象,這是應該把變數聲明為指標;相反如果你再設計的時候就確定使用的變數任何時候都不允許為空白,那麼應該將變數聲明為引用。由於引用不存在指向空值,因此引用的代碼效率要比指標高。string& s;//錯誤,引用必須被初始化string str = "123456";string& s =
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
Seqlist.h:const int DefaultSize = 100;template <class T>class SeqList{public: SeqList(int sz = DefaultSize) :m_nmaxsize(sz),m_ncurrentsize(-1) {//初始化順序表 if(sz > 0) { m_element = new T[m_nmaxsize];
Time of Update: 2018-12-07
C++ 資料結構與演算法(二)線性表之單鏈表:寫的不足之處,望指教:)。ListNode.h: template<typename Type> class SingleList;template<typename T>class ListNode{//鏈表結點類public: ListNode():m_pnext(NULL) { } ListNode(const T item,ListNode<T>* next=
Time of Update: 2018-12-07
前面兩篇是關於順序表和單鏈表的,下面這個是雙向鏈表,具體實現代碼如下:結點類檔案(ListNode.h):template<typename T> class DoubleList;template<typename T>class ListNode{private: ListNode():m_pprior(NULL),m_pnext(NULL) { } ListNode(const T item,ListNode<T>*
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
(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
在C++變數範圍(一)中說過static定義的靜態變數,補充一點的就是靜態變數從程式的開始到結束一直都是在靜態儲存區中,地址是固定的,所以對其進行的任何操作都會保留下來。變數就算在是某個函數內聲明定義,但也是會長期存在靜態區中,可並不能代表其他函數或者說其他以外的地方能夠隨便使用該變數,靜態變數歸靜態變數,但是還是會有局部和全域之分。
Time of Update: 2018-12-07
/// <summary> /// 縮小圖片 /// </summary> /// <param name="strOldPic">源圖檔案名稱(包括路徑)</param> /// <param name="strNewPic">縮小後儲存為檔案名稱(包括路徑)</param> /// <param name="intWidth">縮小至寬度&