Time of Update: 2017-01-19
本文執行個體講述了C++設定系統時間及系統時間網路更新的方法。分享給大家供大家參考。具體實現方法如下:複製代碼 代碼如下://根據返回的時間設定系統時間void setTimeFromTP(ULONG ulTime){ FILETIME ft; SYSTEMTIME st; //將基準時間轉換成windows檔案時間
Time of Update: 2017-01-19
本文執行個體講述了C++取得本機IP的方法,分享給大家供大家參考。具體方法如下:核心代碼如下:複製代碼 代碼如下://取得本機IP,在狀態列中顯示 char szHostName[MAX_PATH] = {0}; ::gethostname(szHostName, MAX_PATH); hostent *pHost = gethostbyname(szHostName); if (pHost != NULL) {
Time of Update: 2017-01-19
第九章1、C++程式的組成—— (1)、標頭檔: 包含結構聲明和使用這些結構的原型。 (2)、原始碼檔案: 包含與結構有關的函數的代碼。 (3)、原始碼檔案: 包含調用與結構有關的函數的代碼。2、標頭檔—— (1)、常包含的內容: 函數原型;#define或const定義的符號常量;結構聲明;類聲明;模板聲明;內嵌函式。 (2)、若檔案名稱包含在角括弧中,編譯器將在儲存標準標頭檔的主機系統的檔案系統中尋找。 (3)、若檔案名稱包含在雙引號中,編譯器首先尋找當前
Time of Update: 2017-01-19
本文執行個體講述了C++判斷pe檔案的方法。分享給大家供大家參考。具體實現方法如下:#include <afxdlgs.h>是為了使用CFileDialogmain.h如下:複製代碼 代碼如下:#include <afxwin.h> class CMyApp:public CWinApp { BOOL InitInstance(); };main.cpp如下:複製代碼
Time of Update: 2017-01-19
本文執行個體講述了C++選擇檔案夾代碼的封裝,分享給大家供大家參考。具體方法如下:該執行個體分為DirDialog.h標頭檔與DirDialog.cpp源檔案。DirDialog.h標頭檔代碼如下:複製代碼 代碼如下:#pragma once #ifndef __DIRDIALOG_H_HH #define __DIRDIALOG_H_HH #include <Shlobj.h> class CDirDialog {
Time of Update: 2017-01-19
對於普通類型的對象來說,他們之間的複製是簡單的,比如:複製代碼 代碼如下:int a = 88;int b = a;而類和普通對象不同,類對象內部結構一般較為複雜,存在各種成員變數。複製代碼 代碼如下:#include <iostream>using namespace std;class CExample {private: int a;public: CExample(int b) {
Time of Update: 2017-01-19
本文執行個體講述了C++採用ring3讀取MBR的方法,分享給大家供大家參考。具體實現方法如下:複製代碼 代碼如下:DWORD dwBytesReturned = 0; BYTE bytBuffer_1[512]; BYTE bytBuffer_2[512]; CHAR string[2048];
Time of Update: 2017-01-19
本文執行個體講述了C++採用TLS線程局部儲存的用法。分享給大家供大家參考。具體方法如下:複製代碼 代碼如下:// useTLS.cpp : 定義控制台應用程式的進入點。 // #include "stdafx.h" #include <Windows.h> #include <process.h> //聲明 VOID InitStartTime();
Time of Update: 2017-01-19
本文執行個體講述了C++中Semaphore核心對象的用法,分享給大家供大家參考。具體方法如下:複製代碼 代碼如下:// Semaphore.cpp : 定義控制台應用程式的進入點。 // #include "stdafx.h" #include <Windows.h> #include <process.h> HANDLE g_hSemaphore;
Time of Update: 2017-01-19
本文執行個體講述了C++設定事件通知線程工作的方法,其中主線程通過將事件狀態設定為“受信”來通知背景工作執行緒工作。具體實現方法如下:複製代碼 代碼如下:// eventDemo.cpp : 定義控制台應用程式的進入點。 // #include "stdafx.h" #include <Windows.h> #include <process.h> HANDLE g_event;
Time of Update: 2017-01-19
本文執行個體講述了C++線程優先順序SetThreadPriority的使用方法,分享給大家供大家參考。具體方法如下:複製代碼 代碼如下:// ThreadPriority.cpp : 定義控制台應用程式的進入點。 // #include "stdafx.h" #include <Windows.h> DWORD WINAPI ThreadProcIdle(LPVOID lpParameter)
Time of Update: 2017-01-19
本文執行個體講述了C++開啟線程CreatThread函數的使用,實現主線程與背景工作執行緒互動的功能。分享給大家供大家參考。具體實現代碼如下:複製代碼 代碼如下://線程函數 DWORD WINAPI ThreadProc(LPVOID lpParameter) { for (int i=0;i<20;i++) { &
Time of Update: 2017-01-19
本文執行個體講述了C++基於CreateToolhelp32Snapshot擷取系統進程的實現方法。分享給大家供大家參考。具體方法如下:// GetWinProcess.cpp : 定義控制台應用程式的進入點。//#include "stdafx.h"#include <Windows.h>#include <TlHelp32.h>int _tmain(int argc, _TCHAR* argv[]){ HANDLE hProcessSnap =
Time of Update: 2017-01-19
開始的話已經好長時間沒有更新了,對不起自己,更對不起我親愛的讀者,同時也對不起自己開辦的這個部落格平台。忙,太忙了,忙於找工作,找一份好工作,糾結於去大城市闖呢,還是回到本省的首府城市。大家都在糾結這個問題,也希望大家和我討論討論。別的先不說了,都工作這麼長時間了,還回過頭來總結union,確實有點過分,要是和大家說我一直從事於C++開發,還不懂union,大家可能還真的不信。我們每天都在總結那些看似高端的東西,什麼設計模式(當然我也有總結了)、重構(後期我也會說的了)了,卻忽略了那些最基礎,最
Time of Update: 2017-01-19
這也可以?複製代碼 代碼如下:#include <iostream>using namespace std; struct Test_A{ char a; char b; int c;}; struct Test_B{ char
Time of Update: 2017-01-19
本文執行個體講述了C++實現查殼程式碼,分享給大家供大家參考。具體方法分析如下:一般來說,PEID是基於特徵碼的,用python只需要兩行代碼,用VC實現用了這麼多代碼……。python中只要引入pefile模組,第一句代碼指定資料庫檔案,第二句代碼返回結果。具體的看pefile官方介紹吧下面是C++的代碼:複製代碼 代碼如下:void CMyPeidDlg::OnBnClickedBtnOpen() { //
Time of Update: 2017-01-19
選擇排序選擇排序是一種簡單直觀的排序演算法,它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與資料移動有關。如果某個元素位於正確的最終位置上,則它不會被移動。選擇排序每次交換一對元素,它們當中至少有一個將被移到其最終位置上,因此對n個元素的表進行排序總共進行至多n-1次交換。在所有的完全依靠交換去移動元素的排序方法中,選擇排序屬於非常好
Time of Update: 2017-01-19
冒泡排序大學學習資料結構與演算法最開始的時候,就講了冒泡排序;可見這個排序演算法是多麼的經典。冒泡排序是一種非常簡單的排序演算法,它重複地走訪過要排序的數列,每一次比較兩個數,按照升序或降序的規則,對比較的兩個數進行交換。比如現在我要對以下資料進行排序:10 3 8 0 6 9 2當使用冒泡排序進行升序排序時,排序的步驟是這樣的:3 10 8 0 6 9 2 // 10和3進行對比,10>3,交換位置3 8 10 0 6 9 2 //
Time of Update: 2017-01-19
本文執行個體講述了C++實現動態分配const對象的方法。分享給大家供大家參考。具體方法分析如下:一、建立在C++中,允許動態建立const對象,格式如下:const int *p = new const int(128);與其他常量一樣,動態建立的const對象必須在建立時初始化,並且初始化後,其值不能改變。二、刪除儘管不能改變const對象的值,但可以刪除動態建立的const對象,格式如下:delete
Time of Update: 2017-01-19
前言又到年底了,時間真的過的好快啊。最近也非常感傷,總是懷念大學的日子,做夢的時候也常常夢到。夢到大學在電腦前傻傻的敲著鍵盤,寫著代碼,對付著資料結構與演算法的作業;建立一個鏈表,遍曆鏈表,列印鏈表。現在把那個時候聲明的鏈表的標頭檔拿出來看看:複製代碼 代碼如下:typedef struct tagNode{ int value; tagNode