Time of Update: 2018-12-07
1 #include <stdio.h> 2 3 int&foo(int a) 4 { 5 static int t; 6 t = a; 7 return t; 8 } 9 10 void main(void)11 {12 if (foo(1) == foo(2))13 {14 printf("right!\n");15 }16 return;17 } 最後結果為:right! 下面為執行過程中的彙編代碼:16:
Time of Update: 2018-12-07
今天用DriverStudio嚮導產生一個基於NDIS的驅動程式,在開始編譯的時候出現“ntstrsafe.lib”打不開,再然後出現“kndis5mp.lib”。解決辦法:1、ntstrsafe.libdriverstudio產生的驅動工程都會要串連ntstrsafe.lib這個庫,但實際上這個庫並不存在,在Project的Settings裡的Link項中去掉這個庫,然後在工程中的sources檔案裡邊,找到下面一行:TARGETLIBS=$(DDK_LIB_PATH)/ntstrsafe.l
Time of Update: 2018-12-07
文章目錄 問題模式選擇實現 問題 個人認為 Singleton 模式是設計模式中最為簡單、最為常見、最容易實現,也是最應該熟悉和掌握的模式。且不說公司企業在招聘的時候為了考察員工對設計的瞭解和把握,考的最多的就是 Singleton 模式。 Singleton 模式解決問題十分常見,我們怎樣去建立一個唯一的變數(對象)?在基於對象的設計中我們可以通過建立一個全域變數(對象)來實現,在物件導向和面向過程結合的設計範式(如
Time of Update: 2018-12-07
OutPutDebugString(TEXT("在調試器裡輸出的類容"));#define MAXDUGBUFF 20#define OutError(ErrorEvent) { \ wchar_t DebugChar[MAXDUGBUFF]; \ ZeroMemory(DebugChar, MAXDUGBUFF * sizeof(wchar_t)); \ wsprintfW(DebugChar, L"%s Error(%d) at line(
Time of Update: 2018-12-07
相關概念:c++三種傳遞參數方式傳參數的值(稱值傳遞,簡稱傳值),傳參數的地址(稱地址傳遞,簡稱為傳址),和引用傳遞(稱為傳引用),相應的函數傳值調用,傳址調用和傳引用調用形參、實參 函數定義時參數表中的參數稱為形式參數,簡稱形參;函數調用時參數表中的參數稱為實際參數,簡稱實參。實參和形參之間的資料傳遞稱為形實結合說明通常情況下,C++是傳值調用,它是單向的,只能從實參到形參。形參實質上市實參的一種拷貝,所以傳遞時不會改變外部實參的值引用的含義及功能即別名,功能主要是傳遞函數的參數和傳回值引用的
Time of Update: 2018-12-07
這幾天對NDIS的學習,基本思路是:首先熟悉理論知識→然後下載一個例子進行研究→最後例子自己模仿擴充→最最後嘗試自己寫一個新的。Passthru是微軟NDIS自己寫的一個架構驅動,NDIS開發人員可以在此架構上進行擴充,做二次開發。NDIS提供一些基本操作函數,Passthru裡的函數就是使用的這些基本函數做成的一個網路驅動。基於Passthru的擴充就是自己在此驅動的基礎上在封裝一次,比如說為MyPassthru,將NDIS裡面的函數封裝在自己自訂函數裡,方便外界調用。最主要的函數就是NDIS
Time of Update: 2018-12-07
VC 項目配置基礎 (請點擊開啟)按類別列出的編譯器選項Visual Studio 2010 其他版本 Visual Studio 2008 Visual Studio 2005下面是一個完整的編譯器選項分類列表。有關按字母順序排序的列表,請參見按字母順序列出的編譯器選項。最佳化選項用途/O1建立小代碼/O2建立快速代碼/Ob控制內聯展開/Od禁用最佳化/Og使用全域最佳化/Oi產生內建函式/Os代碼大小優先/Ot代碼速度優先/Ox使用最大最佳化 (/Ob2gity /Gs)/Oy省略幀指標(
Time of Update: 2018-12-07
(轉載,原文連結:http://www.enjoysoft.cn/blog/post/62.html) 使用C++標準庫的iostream,可以方便地將控制台、檔案、字串以及其它可擴充的外部表格示作為流來處理,但要處理中文,卻會碰到很多問題。本人原來沒怎麼用過這個iostream,這幾天嘗試用這個寫點東西,一會兒不能輸出中文,一會兒不支援中文檔案名稱的,搞得頭大。網上搜了搜,沒有發現適用於所有情況的解決方案。不過後來自己經過多次測試,基本解決了這些問題,現在寫成文字作為一個總結,也供碰到同樣問
Time of Update: 2018-12-07
首先,我要說明的,在C語言中,把“多維陣列”叫做“數組的數組”更好理解一下。(下面我就統一稱之為“數組的數組”)有的教程中喜歡將數組的數組用矩陣表示,不過我更趨向於直線表示,如(定義數組的數組int ga[2][3][5]) (如果圖片太小,建議儲存到電腦上對其放大查看)我對數組的數組的理解(以ga[2][3][5]為例): 即為數組的數組,數組裡麵包含數組,數組作為另一個數組的元素。int ga[2][3][5] = {ga_1[1], ga_1[2]} = {{ga_2[0
Time of Update: 2018-12-07
POSITION GetFirstSelectedItemPosition() const 如果函數執行成功,則返回條目的POSITION值,如果傳回值為KULL,則表示當前列表視圖控制項中沒有條目選中。 Int GetNextSelectedItem(POSITION& pos) const 如果函數執行成功,則返回列表視圖控制項中下一個被選中的條目索引。其中參數pos為將接收條目POSITION值的變數。注意:使用這兩個函數的時候
Time of Update: 2018-12-07
前視緩衝區:lookaheadbuffer這個緩衝區是給協議一段Packet的內容,讓協議來決定是否接受這個報文。考慮資料包的接收,如果我們只需要看見資料內容的前幾個位元組(如TCP頭)就可以決定這個包是否是本協議所需要處理的,那麼顯然下層驅動就沒有必要提交整個資料包,只提供一個包開始的幾個位元組就可以了。這個是有Miniport驅動來決定究竟那個lookaheadbuffer的大小的,這個緩衝區是從報文的 ip頭開始的一段緩衝區,也有可能是包含了整個的
Time of Update: 2018-12-07
問題: 使用putty登入顯示network error:Connection refused使用putty登入顯示network error:Connection refused 在區域網路使用putty登入顯示network error:Connection refused解決方案: 1.gedit /etc/ssh/sshd_config
Time of Update: 2018-12-07
概念: 最大公約數(greatest common divisor,簡寫為gcd;或highest common
Time of Update: 2018-12-07
網路位置工作群組裡能看見別人但是看不見自己 原因:這個是因為自己電腦上的Computer Browse服務沒有啟動。 解決辦法:開始 - 控制台 - 管理工具 - 服務,找到Computer Browser服務,右鍵“啟動”,然後就可以在網路位置工作群組重新整理一次,看見自己的電腦名字了。注意: 1)要是你覺得今後經常用到網路位置查看自己電腦,可以把Computer
Time of Update: 2018-12-07
首先看MSDN中的解釋:CString::GetBuffer LPTSTR GetBuffer( int nMinBufLength ); throw( CMemoryException ); 傳回值:一個指向對象的(以Null 字元結尾的)字元緩衝區的LPTSTR指標。 參數:nMinBufLength 字元緩衝區的以字元數表示的最小容量。這個值不包括一個結尾的Null 字元的空間。說明: 此成員函數返回一個指向CString對象的內部字元緩衝區的指標。返回的LPTSTR不是const,
Time of Update: 2018-12-07
c/c++支援可變參數的函數,即函數的參數是不確定的。一、為什麼要使用可變參數的函數?一般我們編程的時候,函數中形式參數的數目通常是確定的,在調用時要依次給出與形式參數對應的所有實際參數。但在某些情況下希望函數的參數個數可以根據需要確定,因此c語言引入可變參數函數。這也是c功能強大的一個方面,其它某些語言,比如fortran就沒有這個功能。典型的可變參數函數的例子有大家熟悉的printf()、scanf()等。二、c/c++如何?可變參數的函數?為了支援可變參數函數,C語言引入新的調用協議,
Time of Update: 2018-12-07
程式自己刪除自己的方法,基本都是藉助第三方刪除。要不然只有把自己添加到重啟後刪除,或者在退出之前將自己移動到垃圾箱去(使用MoveFileEx,特別注意第三個參數)。 下面介紹藉助第三方刪除自己,代碼如下: View Code void DeleteSelfByCmd(){char szCommandLine[MAX_PATH] = {0}; sprintf(szCommandLine, "/c ping 127.0.0.1 -n 1 && del /f/q \"%
Time of Update: 2018-12-07
一,問題描述 error LNK2001: unresolved external symbol _WinMain@16 debug/main.exe:fatal error LNK 1120:1 unresolved externals error executing link.exe;二,產生這個問題可能的原因 1. 你用vc建了一個控制台程式,它的入口函數應該是main, 而你使用了WinMain. 2. 你用vc開啟了一個.c/.cpp
Time of Update: 2018-12-07
這是WinPcap的NPF驅動核心指南原文的翻譯,英語水平有限,翻譯得可能不是很準確。這個章節說明網路組包過濾(NPF)組件-WinPcap的核心部分。一般使用者可能只對WinPcap的使用感興趣,但不一定想瞭解它的組件結構。因此這些資訊只要是提供給WinPcap的開發人員和維護者,或是對驅動是如何運行有興趣的人所參考。尤其是,對作業系統、網路和Win32核心編程、裝置驅動開發比較熟悉的話對於閱讀這個章節比較有協助。NPF作為WinPcap組件的一部分,它向使用者層提供了處理在網路上傳輸的資料包
Time of Update: 2018-12-07
為編輯框添加 int變數的時候下面有2空可以填寫最大值與最小值;或者自己添加代碼DDV_MinMaxInt(pDX, m_nPort, 1, 65535);但是這個不一定要工作。解決方案:給編輯框添加一個失去焦點(killfocus)的訊息,在裡面UpdateData(TRUE)一下就搞定。原因是當失去焦點時候,同步一下表單和相關變數的值,這樣子系統才能正確判斷是否超過設定的範圍。不過又出現另一個原因,只要你輸入的值不在 定義範圍裡,那麼你的焦點就不能離開控制項,因為會一直彈窗提示的。解決方案: