亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2578 | 回復(fù): 0
打印 上一主題 下一主題

系統(tǒng)安全基礎(chǔ)之常用Win32 API函數(shù)簡介 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2008-07-30 15:18 |只看該作者 |倒序瀏覽
現(xiàn)在很多講Windows程序設(shè)計的書都是講基于MFC庫和OWL庫的Windows設(shè)計,對Windows實現(xiàn)的細(xì)節(jié)都鮮有討論,而調(diào)試程序都是和系統(tǒng)底層打交道,所以有必要掌握一些Win32 API函數(shù)的知識,這樣我們可快捷地找出程序調(diào)用錯在哪?是哪個參數(shù)出了問題。

  Windows程序模塊包括KERNEL、USER和GDI,其中KERNEL完成內(nèi)存管理、程序的裝人與執(zhí)行和任務(wù)調(diào)度等功能,它需要調(diào)用原MS―DOS中的文件管理、磁盤輸入輸出和程序執(zhí)行等功能;USER是一個程序庫,它用來對聲音、時鐘、鼠標(biāo)器及鍵盤輸入等操作進(jìn)行管理;GDI是一功能十分豐富的子程序庫,它提供了圖形與文字輸出、圖象操作和窗口管理等各種與顯示和打印有關(guān)的功能。上述KERNEL、USER和GDI模塊中的庫函數(shù)可被應(yīng)用程序調(diào)用,也可被其他程序模塊調(diào)用。把包含庫函數(shù)的模塊稱為輸出者(export)。你應(yīng)明白為什么跟蹤軟件時經(jīng)常在KERNEL32!。text和USER32.text等系統(tǒng)領(lǐng)空轉(zhuǎn)的問題吧。

  這里列出幾個經(jīng)常碰到的Win 32 API函數(shù),它們都是存在Windows系統(tǒng)核心文件KERNEL32.DLL中和視窗管理文件USER32.DLL中。

  Windows函數(shù)是區(qū)分字符集的:A表示ANSI,W表示W(wǎng)ide,即Unicode (Wide character-set),前者就是通常使用的單字節(jié)方式,但這種方式處理象中文這樣的雙字節(jié)字符不方便,容易出現(xiàn)半個漢字的情況。而后者是雙字節(jié)方式,方便處理雙字節(jié)字符。Windows的所有與字符有關(guān)的函數(shù)都提供兩種方式的版本。盡管你編程時使用GetWindowText,但實際上編譯程序會根據(jù)設(shè)置自動調(diào)用GetWindowTextA或GetWindowTextW.函數(shù)的最后一個字母告訴我們函數(shù)是使用單字節(jié)還是雙字節(jié)字符串。

  1、Hmemcpy函數(shù)

  void hmemcpy(hpvDest, hpvSource, cbCopy)

  void _huge* hpvDest; // 目的數(shù)據(jù)地址

  const void _huge* hpvSource; // 源數(shù)據(jù)地址

  long cbCopy; // 數(shù)據(jù)大小 (Bytes)

  這個函數(shù)在KERNEL32.DLL中,它很常用,俗稱萬能斷點,但一般的編程書籍上很少提到,原因它是底層的東西,沒有特殊需要,一般不直接調(diào)用。但的確它是很有用的!有意思的是它執(zhí)行的操作很簡單,只是將內(nèi)存中的一塊數(shù)據(jù)拷貝到另一個地方。

  注意:此函數(shù)只在Windows 9x系統(tǒng)上有效,在Win NT/2K系統(tǒng)上相關(guān)的函數(shù)是memcpy,但在Win NT/2K上不同于Windows 9x上,很少再調(diào)用memcpy來處理數(shù)據(jù)了,用此函數(shù)設(shè)斷基本上什么也攔不住。

  2、GetWindowText函數(shù)

  此函數(shù)在USER32.DLL用戶模塊中,它的作用是復(fù)制指定窗口中的字符到緩沖區(qū)。函數(shù)原型:

int GetWindowText(
HWND hWnd//欲獲取文字的那個窗口的句柄
LPTSTR lpString //預(yù)定義的一個緩沖區(qū),至少有cch+1個字符大小;隨同窗口文字載入
int nMaxCount//lpString緩沖區(qū)的長度
);
16位:GetWindowText
32位:GetWindowTextA,GetWindowTextW
<strong>3、GetDlgItemText</strong>


  3、GetDlgItemText

  此函數(shù)在USER32.DLL用戶模塊中,它的作用是返回對話框中某一個窗口的標(biāo)題或文字。函數(shù)原型:

UINT GetDlgItemText(
HWND hDlg, // 對話框句柄
int nIDDlgItem, //控制標(biāo)識符
LPTSTR lpString, / 預(yù)定義的一個字符緩沖區(qū)
int nMaxCount// 字符緩沖區(qū)的長度
);
16位:GetDlgItemText
32位:GetDlgItemTextA,GetDlgItemTextW


4、MessageBox函數(shù)

此函數(shù)是在USER32.DLL用戶模塊中,它的作用創(chuàng)建、顯示和操作信息框。函數(shù)原型:

int MessageBox(
HWND hWnd, //窗口句柄
LPCTSTR lpText, // 信息框中文字的地址
LPCTSTR lpCaption, // 信息框標(biāo)題地址
UINT uType // 信息框類型
);
16位:MessageBox
32位:MessageBoxA,MessageBoxW
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP