Time of Update: 2017-01-23
C++11新特性中auto 和 decltype 區別和聯絡一. auto簡介編程時候常常需要把運算式的值付給變數,需要在聲明變數的時候清楚的知道變數是什麼類型。然而做到這一點並非那麼容易(特別是模板中),有時候根本做不到。為瞭解決這個問題,C++11新標準就引入了auto類型說明符,用它就能讓編譯器替我們去分析運算式所屬的類型。和原來那些只對應某種特定的類型說明符(例如 int)不同。auto 讓編譯器通過初始值來進行類型推演。從而獲得定義變數的類型,所以說 auto 定義的變數必須有初始值。
Time of Update: 2017-01-23
1. 左值與右值: C++對於左值和右值沒有標準定義,但是有一個被廣泛認同的說法:可以取地址的,有名字的,非臨時的就是左值;不能取地址的,沒有名字的,臨時的就是右值. 可見立即數,函數返回的值等都是右值;而非匿名對象(包括變數),函數返回的引用,const對象等都是左值. 從本質上理解,建立和銷毀由編譯器幕後控制的,程式員只能確保在本行代碼有效,就是右值(包括立即數);而使用者建立的,通過範圍規則可知其生存期的,就是左值(包括函數返回的局部變數的引用以及const對象),例如:
Time of Update: 2017-01-23
如下所示://final,override出現在形參列表以及尾置傳回型別之後#include <iostream>using namespace std;struct B{ virtual void f1(int) const; virtual void f2(int); void f3(int) final;//出錯,final不能修飾非虛函數};struct D:B{ void f1(int) const override
Time of Update: 2017-01-23
shared_ptr基本用法shared_ptr採用引用計數的方式管理所指向的對象。當有一個新的shared_ptr指向同一個對象時(複製shared_ptr等),引用計數加1。當shared_ptr離開範圍時,引用計數減1。當引用計數為0時,釋放所管理的記憶體。這樣做的好處在於解放了程式員手動釋放記憶體的壓力。之前,為了處理常式中的異常情況,往往需要將指標手動封裝到類中,通過解構函式來釋放動態分配的記憶體;現在這一過程就可以交給shared_ptr去做了。一般我們使用make_shared來獲
Time of Update: 2017-01-23
前言C++是一種強型別語言,聲明變數時必須明確指出其類型。但是,在實踐中,優勢我們很難推斷出某個運算式的值的類型,尤其是隨著模板類型的出現,要想弄明白某些複雜運算式的傳回型別就變得更加困難。為瞭解決這個問題,C++11中引入的auto主要有兩種用途:自動類型推斷和傳回值佔位。auto在C++98中的標識臨時變數的語義,由於使用極少且多餘,在C++11中已被刪除。前後兩個標準的auto,完全是兩個概念。一、自動類型推斷auto自動類型推斷,用於從初始設定式中推斷出變數的資料類型。通過auto的自動
Time of Update: 2017-01-23
lambda簡介熟悉Python的程式員應該對lambda不陌生。簡單來說,lambda就是一個匿名的可調用代碼塊。在C++11新標準中,lambda具有如下格式:[capture list] (parameter list) -> return type { function body }可以看到,他有四個組成部分: 1.capture list: 捕獲列表 2.parameter list: 參數列表 3.return type: 傳回型別
Time of Update: 2017-01-22
首先得知道cmd介面中可以對windows使用者帳號進行操作在c/c++中用system("")就能直接與cmd進行通訊下面是代碼,很簡單,不再解釋,我們從示範來看這兩句代碼的功能!# include <stdlib.h> # include <stdio.h> # include <windows.h> int main() { int i = 1; int a;
Time of Update: 2017-01-22
首先我們知道台式機和筆記本的區別就在於是否有電源如果有讀取電源資訊的API提供傳回值,是不是就可以斷定是筆記本或者台式機了呢?下面先看一個APIGetSystemPowerStatus function我們大體上可以知道這是一個檢索系統電源狀態的函數,這個狀態暗示了系統是直流電還是交流電,還有電池當前的裝載清空等等等的呢。下面我看看參數:SYSTEM_POWER_STATUS
Time of Update: 2017-01-22
首先,我們先來瞭解幾個API_getcwdGets the current working directory.char *_getcwd( char *buffer, int maxlen );bufferStorage location for the path.maxlenMaximum length of the path in characters: char for _getcwd and wchar_t for
Time of Update: 2017-01-22
原理:隱藏控制找個控制代碼,再用SetWindowText進行修改。‘我用Qt建立了一個視窗程序,如接下來用VS帶的spy++找到視窗建立一個控制台程式,代碼如下#include <Windows.h> #include <stdio.h> int main() { FreeConsole(); Sleep(10); HWND Win = FindWindowA(NULL, "demo"); if
Time of Update: 2017-01-22
在windows系統中,當涉及本進程去操作其他進程,或者要用shutdown這些高危命令的時候就涉及提權,下面是MSDN的列子提權三兄弟OpenProcessTokenLookupPrivilegevalueAdjustTokenPrivileges我們用下面這個MSDN的代碼來做一個註冊表無限關機的列子#include <windows.h> #pragma comment(lib, "user32.lib") #pragma comment(lib,
Time of Update: 2017-01-22
很久的風行就是用的這種方法來防止使用者刪除它。很久以前的一段時期也用次方法防隨身碟病毒如下所示:防隨身碟病毒的原理就是在每個盤建立一個這樣的檔案下面先接受幾個win APIDWORD WINAPI GetLogicalDriveStrings(<span style="white-space:pre"> </span>//擷取磁碟 _In_ DWORD nBufferLength, _Out_ LPTSTR lpBuffer );&
Time of Update: 2017-01-22
autorun.inf是我們電腦使用中比較常見的系統檔案 ,其作用是允許在雙擊磁碟時自動運行指定的某個檔案。下面介紹幾個API函數1.DWORD GetLogicalDriveStrings(DWORD nBufferLength, // size of bufferLPTSTR lpBuffer // drive strings buffer);2.char *strncpy(char *dest,char *src,size_t n);第1個參數:char *strDest目的字串指標。
Time of Update: 2017-01-22
本次以win98掃雷"進階"場為例子的基礎篇代碼,稍後會寫出所有場通用篇掃雷"進階"場是指下面是OD和win98掃雷下載連結:http://pan.baidu.com/s/1gfA10K7 密碼:eiqp下面開始示範本次實驗:1.開啟OD後,把winmine.exe拖入OD2.在WM_LBUTTONUP上設定斷點3.然後單步步過到此位置在注釋為訊息處理(地址為01001FE1)跟隨4.跟隨後我們在此處可以找到棋盤資料提取當前位置的資料如下:我們就知道地址0
Time of Update: 2017-01-22
關於寫可塞滿硬碟的程式我們先想想思路:第一步:擷取邏輯盤符第二步:建立檔案第三步:檔案寫入資料擴充要求:一:隱藏視窗二:檔案設定為隱藏屬性下面我們對上述的思路介紹一個API,接受完後給出原始碼GetLogicalDriveStrings functionFills a buffer with strings that specify valid drives in the system.DWORD WINAPI GetLogicalDriveStrings( _In_ DWORD
Time of Update: 2017-01-22
我們在寫某些程式有破壞性的程式的時候,往往會對程式進行剪下複製刪除等操作,下面就來簡單講解下剪下複製刪除,檔案的複製#include <Windows.h> #include <stdio.h> int main() { DWORD getlastError; if (!CopyFileA("C:\\1.txt", "F:\\1.txt", false)) { printf_
Time of Update: 2017-01-22
當我們寫某些具有破壞性的程式時就需要對進程進行遍曆和提取ID 對於上述功能,我們先介紹幾個API1.CreateToolhelp32Snapshout function得到進程、模組或者線程的快照文法如下:HANDLE WINAPI CreateToolhelp32Snapshot( _In_ DWORD dwFlags, _In_ DWORD th32ProcessID
Time of Update: 2017-01-24
一、 概述: Web Services是由企業發布的完成其特定商務需求的線上應用服務,其他公司或應用軟體能夠通過Internet來訪問並使用這項線上服務。它邏輯性的為 其他應用程式提供資料與服務.各應用程式通過網路通訊協定和規定的一些標準資料格式(Http,XML,Soap)來訪問Web Service,通過Web Service內部執行得到所需結果。由於它通過internet進行調用,必然存在網路使用者都可以調用的安全問題。如何?webservice的訪問
Time of Update: 2017-01-24
首先我們要做的就是先把IIS(Internet資訊服務)開啟,我用的是win8 的系統,所以這裡以win8系統的操作來講一、IIS的一些事先操作2、進入程式以後我們找到 啟用或關閉Windows功能 3、進入以後把 Internet資訊服務 的都選上,單擊“確定“上述的步驟好了以後我們退回到控制台 ,找到 系統和安全 裡面的 管理工具 點擊“管理工具” ,第一個就是我們的IIS了,雙擊開啟它我們會彈出這個介面,接下來我們先停一下,接著我們就要去發布WebService了。
Time of Update: 2017-01-23
使用jquery、C#擷取CheckBoxList選擇項,實現如下,感興趣的朋友可以參考下PHP代碼如下:.checkboxlist label { margin-right: 20px; }PHP代碼如下:var label; $("#ddlplatform input:checkbox:checked").each(function () { label += $(this).next().html(); });PHP 代碼如下:<asp:CheckBoxList