本文執行個體講述了C++破壞MBR的代碼,該源碼只有破壞作用,使系統無法進入。僅供大家參考借鑒之用。請勿用於非法目的。源碼來源於網上。具體代碼如下:複製代碼 代碼如下:#include <Windows.h> #include <stdio.h> //shellcode隨便寫了點 能破壞MBR,無法進入系統 unsigned char scode[]=
本文執行個體講述了C++採用ring3讀取MBR的方法,分享給大家供大家參考。具體實現方法如下:複製代碼 代碼如下:DWORD dwBytesReturned = 0; BYTE bytBuffer_1[512]; BYTE bytBuffer_2[512]; CHAR string[2048];
本文執行個體講述了C++中CNoTrackObject類和new delete操作符的重載,分享給大家供大家參考。具體如下:頭資訊:複製代碼 代碼如下:class CNoTrackObject{ public: //在此出過錯,沒有加public 預設為類的私人變數,MyThreadData繼承這個類後也無法訪問成員變數 void* operator new(size_t nSize);
本文執行個體講述了C++中模板類的用法,分享給大家供大家參考。具體方法如下://#include "StdAfx.h #ifndef __AFXTLS_H__ #define __AFXTLS_H__ #include <Windows.h> class CSimpleList { public: CSimpleList(int nNextOffset=0); void Construct(int nNextOffset); //介面 BOOL IsEmpty()
本文執行個體講述了C++簡單列表類的實現方法。分享給大家供大家參考。具體方法如下:_AFXTLS.CPP檔案如下://#include "StdAfx.h #include <stddef.h> #include <stdio.h> #include "_AFXTLS_.H" struct MyThreadData{ MyThreadData* pNext; int nShortData; }; void CSimpleList::AddHead(void *
本文執行個體講述了C++採用TLS線程局部儲存的用法。分享給大家供大家參考。具體方法如下:複製代碼 代碼如下:// useTLS.cpp : 定義控制台應用程式的進入點。 // #include "stdafx.h" #include <Windows.h> #include <process.h> //聲明 VOID InitStartTime();
本文執行個體講述了C++中Semaphore核心對象的用法,分享給大家供大家參考。具體方法如下:複製代碼 代碼如下:// Semaphore.cpp : 定義控制台應用程式的進入點。 // #include "stdafx.h" #include <Windows.h> #include <process.h> HANDLE g_hSemaphore;
本文執行個體講述了C++設定事件通知線程工作的方法,其中主線程通過將事件狀態設定為“受信”來通知背景工作執行緒工作。具體實現方法如下:複製代碼 代碼如下:// eventDemo.cpp : 定義控制台應用程式的進入點。 // #include "stdafx.h" #include <Windows.h> #include <process.h> HANDLE g_event;
本文執行個體講述了C++使用CriticalSection實現線程同步的方法,在前文C++線程同步執行個體分析的基礎上增加了四行代碼,使用了四個函數:EnterCriticalSection ::DeleteCriticalSection ::EnterCriticalSection ::LeaveCriticalSection此時,列印出來的數字就相等了。具體代碼如下:#include "stdafx.h" #include <Windows.h> DWORD g_cnt1;
本文執行個體分析了C++線程同步問題,分享給大家供大家參考。具體分析如下:該執行個體設定全域變數g_bContinue,在主線程中設定全域變數g_bContinue,背景工作執行緒檢測該全域變數,實現主線程式控制制背景工作執行緒的目的。列印出的g_cnt1與g_cnt2的數值不同,是因為線程調試時時間片的切換。具體代碼如下:// countError.cpp : 定義控制台應用程式的進入點。 // #include "stdafx.h" #include <Windows.h>
本文執行個體講述了C++開啟線程CreatThread函數的使用,實現主線程與背景工作執行緒互動的功能。分享給大家供大家參考。具體實現代碼如下:複製代碼 代碼如下://線程函數 DWORD WINAPI ThreadProc(LPVOID lpParameter) { for (int i=0;i<20;i++) { &
本文執行個體講述了C++記憶體尋找的方法,分享給大家供大家參考。具體如下:windows程式設計中的記憶體尋找功能,主程式碼如下:複製代碼 代碼如下:// MemRepair.cpp : 定義控制台應用程式的進入點。 // #include "stdafx.h" #include <Windows.h> BOOL FindFirst(DWORD dwValue); BOOL
本文執行個體講述了C++通過TerminateProess結束進程的方法,分享給大家供大家參考。具體實現方法如下:BOOL TerminateProcessFromId(DWORD pid){ HANDLE hProcess = ::OpenProcess(PROCESS_ALL_ACCESS, FALSE,pid); if (hProcess == NULL) { printf("openprocess failed..."); return FALSE; } BOOL bRet =
變態的命名我們在寫程式時,一般講究見到變數的命名,就能讓別人基本知道該變數的含義。memcpy記憶體拷貝,沒有問題;memmove,記憶體移動?錯,如果這樣理解的話,那麼這篇文章你就必須要好好看看了,memmove還是記憶體拷貝。那麼既然memcpy和memmove二者都是記憶體拷貝,那二者究竟有什麼區別呢?先說memcpy你有沒有好好的參加過一場C++筆試。讓你寫出memcpy的實現,這是多麼常見的筆試題啊。現在,拿起你的演算紙和筆;是的,是筆和紙,不是讓你在你的IDE上寫。寫不出來?看下面吧
本文執行個體講述了C++基於CreateToolhelp32Snapshot擷取系統進程的實現方法。分享給大家供大家參考。具體方法如下:// GetWinProcess.cpp : 定義控制台應用程式的進入點。//#include "stdafx.h"#include <Windows.h>#include <TlHelp32.h>int _tmain(int argc, _TCHAR* argv[]){ HANDLE hProcessSnap =
開始的話已經好長時間沒有更新了,對不起自己,更對不起我親愛的讀者,同時也對不起自己開辦的這個部落格平台。忙,太忙了,忙於找工作,找一份好工作,糾結於去大城市闖呢,還是回到本省的首府城市。大家都在糾結這個問題,也希望大家和我討論討論。別的先不說了,都工作這麼長時間了,還回過頭來總結union,確實有點過分,要是和大家說我一直從事於C++開發,還不懂union,大家可能還真的不信。我們每天都在總結那些看似高端的東西,什麼設計模式(當然我也有總結了)、重構(後期我也會說的了)了,卻忽略了那些最基礎,最
前言說到C++模板,這個已經不是什麼新東西了,自己在實際開發中也用過;對於C++模板特化和偏特化,對於別人來說,已經不是什麼新東西了,但是對於我來說,的確是我的盲區,那天在群裡討論這個問題,自己對於這部分確實沒有掌握,又聯想到在《STL源碼剖析》一書中,對於此也是有著介紹。所以,今天就對此進行詳細的總結,以備後忘。C++模板說到C++模板特化與偏特化,就不得不簡要的先說說C++中的模板。我們都知道,強型別的程式設計迫使我們為邏輯結構相同而具體資料類型不同的對象編寫入模式一致的代碼,而無法抽取其中
本文執行個體講述了C++實現下載的方法,分享給大家供大家參考。具體實現代碼如下:複製代碼 代碼如下:#include <UrlMon.h> #include <WinInet.h> #pragma comment(lib,"wininet") void CFileDownloadDlg::OnBnClickedBtnDownload() {
前言離開了自己工作了將近兩年的公司,日子不再有了忙碌,可以閑下來,躺在家裡的床上,想著以後的路怎麼走,說實話,真的很迷茫,從2012年畢業到現在,時間不長,但是學到的東西真的是非常有限,一直從事於Windows平台上的開發。說到Windows平台的開發,大家都肯定知道的HOOK的,即使不知道HOOK,對於COM應該也是知道的,我的系列博文中也對COM進行過全面的總結。說白了,HOOK就是在執行某個功能時,會有一個一系列的執行過程,對於這個過程一般都是固定的,比如:第一步執行什麼,第二步幹什麼,最
前言這是23+1(簡單原廠模式)之中的最後一個了——訪問者模式。訪問者模式也是一個比較麻煩的設計模式。我也沒有實戰經驗,對於訪問者模式的理解完全來自GOF的《設計模式:可複用物件導向軟體的基礎》,而這篇文章就是根據對這本書的理解而寫出來的。在讀《設計模式:可複用物件導向軟體的基礎》的時候,讓我想起自己做過的一個項目,該項目雖然沒有使用訪問者模式,但是,今天理解了該模式,如果使用該模式對之前做過的項目進行重構,將是一個不錯的想法。訪問者模式在GOF的《設計模式:可複用物件導向軟體的基礎》一書中對訪