Time of Update: 2018-12-05
原子程式碼片段,Critical section 使用方法使用方法Example Code For Critical Sections with Win32 API/* Sample C/C++, Windows, link to kernel32.dll *///在windows平台下,調用了kernel32.dll的windows API函數#include <windows.h>static CRITICAL_SECTION cs;/* This is the
Time of Update: 2018-12-05
微軟公司給c#(讀為c-sharp)賦予c++某些物件導向的本質,比如模板,但改動了類的建立方法。本文,我將對比c++和c#的類,並著重說明微軟在c#中類建立和使用方面的改動。一、簡介物件導向(oo)編程在應用設計中已發展二十來年了。程式不再是一系列函數的堆徹(象一些範例那樣的程式),而是對象的集合,每個對象都有其獨特的屬性和方法來和其他對象打交道。"c"語言系列是物件導向設計發展的最佳例子。c++為研發者提供了優秀的物件導向編程工具,程式員能顯式地建立建構函式,拷貝建構函式,重載操作符,使用模
Time of Update: 2018-12-05
C++字串完全指南(2) - 各種字串類- CRT類_bstr_t字串封裝類我已經說明了字串的各種類型,現在討論封裝類。對於每個封裝類,我都會說明它的物件建構過程和如何轉換成C類型字串指標。應用介面的調用,或構造另一個不同類型的字串類,大多都要用到C類型指標。本文不涉及類的其它操作,如排序和比較等。再強調一下,在完全瞭解轉換結果之前不要隨意使用強制類型轉換。CRT類_bstr_t_bstr_t
Time of Update: 2018-12-05
C語言中有些函數使用可變參數,比如常見的int printf( const char* format, ...),第一個參數format是固定的,其餘的參數的個數和類型都不固定。 C語言用va_start等宏來處理這些可變參數。這些宏看起來很複雜,其實原理挺簡單,就是根據參數入棧的特點從最靠近第一個可變參數的固定參數開始,依次擷取每個可變參數的地址。下面我們來分析這些宏。 在stdarg.h標頭檔中,針對不同平台有不同的宏定義,我們選取X86平台下的宏定義:typedef char *
Time of Update: 2018-12-05
全域變數聲明和定義的區別全域變數的聲明(declare),表示其屬性,主要指類型;在A檔案引用B檔案定義的全部變數,則要在A檔案中用extern關鍵字來聲明該變數,而不是再定義一個全域變數的定義(definition),還會導致為該變數分配儲存空間 static用法若是修飾全域變數,則表示該變數的範圍是定義處到檔案結束若是修飾局部變數,則表示該變數是靜態,生存期為整個程式的生存期,其儲存空間在程式的全域資料區上分配,而一般局部變數在棧上分配儲存空間 另外有個問題,局部變數會覆蓋同名的全部變數的範
Time of Update: 2018-12-05
/* smb.c last edited Thu Nov 15 11:10:36 CET 2001 by noah * * SMB sharelevel cracker by snuggl@hack.se * usage: smb 192.168.0.1 //netbiosname/sharename * * This works with a bug in MS implementation of the SMB sharelevel password sheme * where it
Time of Update: 2018-12-05
第十章 迴圈語句10.1 while 迴圈10.2 do ... while 迴圈10.3 for 迴圈 10.3.1 迴圈條件三要素 10.3.2 三要素在for迴圈結構上體現10.4 多層迴圈10.5 小結及一點問題 迴圈就是反覆。 生活中,需要反覆的事情很多。譬如你我的整個人生,就是一個反覆,反覆每一天的生活,直到死,幸好,我們每天的生活並不完全一個樣。 10.1 while 迴圈 文法形式: while(條件) { 需要迴圈執行的語句; } while 是“
Time of Update: 2018-12-05
概述 C語言的記憶體模型基本上對應了現在von Neumann(馮·諾伊曼)電腦的實際儲存模型,很好的達到了對機器的映射,這是C/C++適合做底層開發的主要原因,另外,C語言適合做底層開發還有另外一個原因,那就是C語言對底層操作做了很多的的支援,提供了很多比較底層的功能。 下面結合問題分別進行闡述。 問題:移位操作 在運用移位操作符時,有兩個問題必須要清楚: (1)、在右移操作中,騰空位是填 0 還是符號位; (2)、什麼數可以作移位的位元。 答案與分析: ">>"
Time of Update: 2018-12-05
——何謂函數 本篇之前的內容都是基礎中的基礎,理論上只需前面所說的內容即可編寫出幾乎任何只操作記憶體的程式,也就是本篇以後說明的內容都可以使用之前的內容自己實現,只不過相對要麻煩和複雜許多罷了。
Time of Update: 2018-12-05
——何謂指標 本篇說明C++中的重中又重的關鍵——指標類型,並說明兩個很有意義的概念——靜態和動態。數組 前面說了在C++中是通過變數來對記憶體進行訪問的,但根據前面的說明,C++中只能通過變數來操作記憶體,也就是說要操作某塊記憶體,就必須先將這塊記憶體的首地址和一個變數名綁定起來,這是很糟糕的。比如有100塊記憶體用以記錄100個工人的工資,現在要將每個工人的工資增加5%,為了知道各個工人增加了後的工資為多少,就定義一個變數float
Time of Update: 2018-12-05
C語言的學習,一般的方式是,先學C,然後是C++,最好還要有組合語言和微機原理基礎,然後才是Visual C++。這樣的方式,對學習者來說,要花費很多時間和耐力。而在學校教學中,也沒有時間深入學習Windows編程的實用技術了。 其實,具有了C語言基礎後,再有一些基本的C++類的概念,就可以直接學習Windows C編程了。 一、走近Windows C語言 很多語言都把顯示一個“Hello,World!”做為第一個入門程式, C語言的第一個程式是這樣的:#include<stdio.
Time of Update: 2018-12-05
——類的相關知識 前面已經介紹了自訂類型的成員變數和成員函數的概念,並給出它們各自的語義,本文繼續說明自訂類型剩下的內容,並說明各自的語義。許可權 成員函數的提供,使得自訂類型的語義從資源提升到了具有功能的資源。什麼叫具有功能的資源?比如要把收音機映射為數字,需要映射的操作有調整收音機的頻率以接收不同的電台;調整收音機的音量;開啟和關閉收音機以防止電力的損耗。為此,收音機應映射為結構,類似下面: struct Radiogram { double
Time of Update: 2018-12-05
目前最常見的安全問題是緩衝區溢位。這個特別的安全問題引發的病毒感染可能比其它原因引發的病毒感染數量的總和還要多。市場上幾乎每個應用程式和作業系統都存在駭客可能利用的緩衝區溢位漏洞。這個問題對於微軟Windows來說是如此嚴重,以至於微軟在產品的新版本(例如Windows XP Service Pack 2)中採用了一種完全不同的解決方案。本文的目的是協助你更清晰地認識緩衝區溢位,並提供了幾種用於減少(或者是消除)Visual C++應用程式緩衝區溢位問題的技術。 導航: 什麼是緩衝區溢位
Time of Update: 2018-12-05
我的一些粗淺理解,如下,理解錯了,歡迎大家指正程式,就是通過CPU指令,對記憶體中資料資源的操作,操作,也就是改變記憶體的位元,也是改變高低電平。記憶體中,都是位元據,哪是指令,哪是資料,PC指令計數器所指向的記憶體單元,就是指令。資料也是指令,指令也是資料,所以,程式只要管好PC寄存器就可以了語言級上,程式,是由函數和資料群組成,函數調用,實際上也是改變PC值,地址轉移。一個VC工程中,由許多H和CPP檔案組成,編譯器,負責收集CPP檔案(H檔案被包含)中出現的所有標識或符號,負責形成邏輯、文
Time of Update: 2018-12-05
——類的相關知識 由於篇幅限制,本篇為《C++從零開始(十一)》的下篇,討論多態性及一些剩下的問題。虛的含義
Time of Update: 2018-12-05
理論如下內容,屬個人的理解.與大家共用.錯誤之處,請指正程式,就是通過CPU指令(CPU指令就是CPU能識別的二進位流,CPU通過解釋指令,能發出各種電流脈衝,以達到控制其他電子電路的狀態),對記憶體中資料資源的操作,也就是改變記憶體的位元,也是改變高低電平。記憶體中,都是位元據,哪是指令,哪是資料?PC指令計數器所指向的記憶體單元,就是指令。PC指向哪,哪就是指令,所以資料也是指令,指令也是資料,程式只要管好PC寄存器就可以了.語言級上,程式,是由函數和資料群組成,函數調用,實際上也是改變PC
Time of Update: 2018-12-05
——類的相關知識 由於篇幅限制,本篇為《C++從零開始(十一)》的中篇,說明多重繼承、虛繼承和虛函數的實現方式。多重繼承 這裡有個有趣的問題,如下: struct A { long a, b, c; char d; }; struct B : public A { long e, f; };
Time of Update: 2018-12-05
引言 曾經有些人問我問題,問得都是一些很基礎的問題,但這些人卻已經能使用VC編一個對話方塊介面來進行必要的操作或者是文檔/視介面來即時接收埠資料並動態顯示曲線(還使用了多線程技術),卻連那些基礎的問題都不清楚,並且最嚴重的後果就是導致編寫出拙劣的代碼(雖然是多線程,但真不敢恭維),不清楚類的含義,混雜使用各種可用的技術來達到目的(連用異常代替選擇語句都弄出來了),代碼邏輯混亂,感覺就和金山快譯的翻譯效果一樣。
Time of Update: 2018-12-05
C# COM+編程指南(C#(CSharp)/CSharp) ASP.NET深入編程(C#)(C#(CSharp)/CSharp) Microsoft Visual CSharp .NET 2003 Developers Cookbook(C#(CSharp)/CSharp) Microsoft.Visual.C.Sharp.NET.2003.Kick.Start(C#(CSharp)/CSharp) 深入淺出 MFC 2nd Edition(C/C++/C-Cpp)
Time of Update: 2018-12-05
在終端中執行su命令,然後按提示輸入密碼,擷取root許可權,然後分別執行下列命令:(這裡核心版本號碼可能有所不同,要在終端中執行uname -r查看當前核心版本)cd /usr/src/linux-headers-2.6.35-22-generic/include cp -pgenerated/utsrelease.h linux/utsrelease.h cp -p generated/autoconf.hlinux/autoconf.h然後運行 sudo