• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            不在浮沙筑高臺(tái)-demons
            C++/OS/disassembly/Anti-virus
            posts - 5,  comments - 5,  trackbacks - 0

            題目:
            DoALLProcesses(參數(shù))函數(shù)為接受一個(gè)函數(shù)指針,確保我下面代碼成功:

            DoALLProcesses( listEachProc);可以輸出每個(gè)進(jìn)程的基本信息。

            DoALLProcessesTerminateQQ;//終止qq

             其中listEachProcTerminateQQ是你自己定義的函數(shù)名。
            目的:通過(guò)本次練習(xí),掌握函數(shù)指針的使用,理解C語(yǔ)言中如何利用函數(shù)指針對(duì)相同框架代碼重用。

            分析:由提議可知
            DoALLProcesses為遍歷進(jìn)程的框架代碼,具體看代碼。

             1 
             2 #include "stdafx.h"
             3 #include <Windows.h>
             4 #include <tlhelp32.h>
             5 #include <iostream>
             6 using namespace std;
             7 //typedef bool (*DOEACHPROCFUN)(PROCESSENTRY32 &pe32, HANDLE hProcess);
             8 bool listEachProc(PROCESSENTRY32 &pe32)//列出進(jìn)程
             9 {
            10     static char flag=0; //判斷是否是第一行
            11     if (flag==0)
            12     {
            13         flag=1;
            14         
            15         printf("%-30s%-10s%-15s%-15s\n","Process Name","PID","ThreadsCount","Priority");    
            16     }
            17     _tprintf( _T("%-30s%-10ld%-15ld%-15ld\n"), pe32.szExeFile,pe32.th32ProcessID,
            18         pe32.cntThreads,pe32.pcPriClassBase);    
            19     return TRUE;
            20 }
            21 
            22 bool terminateQQ(PROCESSENTRY32 &pe32)//若是QQ就終止
            23 {
            24     if(_tcsicmp(pe32.szExeFile,_T("QQ.exe"))==0)
            25     {
            26     HANDLE hProcess=OpenProcess(PROCESS_TERMINATE ,FALSE,pe32.th32ProcessID);
            27         TerminateProcess(hProcess,0);
            28         printf("A QQ process been terminated !\n");
            29     }
            30     return true;//表示繼續(xù)查找
            31 
            32 }
            33 
            34 //DoALLProcesses 為枚舉進(jìn)程的框架代碼,沒(méi)找到一個(gè),就會(huì)對(duì)它調(diào)用pfn所指向的函數(shù)
            35 
            36 BOOL DoALLProcesses( bool ( *pfn)(PROCESSENTRY32 &pe32) )//注意函數(shù)指針做參數(shù)的語(yǔ)法
            37 {
            38     HANDLE hProcessSnap;
            39     PROCESSENTRY32 pe32;
            40 
            41     hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
            42     if( hProcessSnap == INVALID_HANDLE_VALUE )
            43     {
            44         cerr<< "CreateToolhelp32Snapshot error\n" ;
            45         return( FALSE );
            46     }
            47 
            48     pe32.dwSize = sizeof( PROCESSENTRY32 );
            49     if( !Process32First( hProcessSnap, &pe32 ) )
            50     {
            51         cerr<<"Process32First " ; 
            52         CloseHandle( hProcessSnap );   
            53         return( FALSE );
            54     }
            55     do
            56     {
            57         if ( !pfn(pe32))//此處調(diào)用作為參數(shù)傳進(jìn)的函數(shù)指針(注意會(huì)根據(jù)pfn反回的值決定是否跳出循環(huán))
            58             break;    
            59     }
            60     while( Process32Next( hProcessSnap, &pe32 ) );
            61     CloseHandle( hProcessSnap );
            62     return( TRUE );
            63 }
            64 int _tmain(int argc, _TCHAR* argv[])
            65 {
            66     DoALLProcesses(listEachProc);//列舉所有進(jìn)程
            67     printf("\n\n");
            68     DoALLProcesses(terminateQQ);//終止所有QQ進(jìn)程
            69     return 0;
            70 }
            71

             

            posted on 2012-11-03 17:39 demons 閱讀(1378) 評(píng)論(3)  編輯 收藏 引用 所屬分類(lèi): Program in Windows

            FeedBack:
            # re: 利用函數(shù)指針實(shí)現(xiàn)相同框架代碼的重用的一個(gè)示例
            2012-11-04 15:06 | Jason Huang
            您好,

            我是獵頭顧問(wèn)Jason,現(xiàn)在給一家創(chuàng)業(yè)型美企(中美都有研發(fā)中心,全球不超過(guò)100人,業(yè)務(wù)是PC/MAC/iOS/Android/WP平臺(tái)的視頻電話(huà),海淀區(qū)蘇州街)招聘C++高級(jí)開(kāi)發(fā)工程師和QA。

            也歡迎搞服務(wù)器開(kāi)發(fā)的人轉(zhuǎn)過(guò)來(lái)做這個(gè)。

            開(kāi)發(fā)要求精通Linux or Windows底層知識(shí),精通C++,精通數(shù)據(jù)結(jié)構(gòu)和算法;

            測(cè)試要求精通Linux命令,精通SQL Programming,能獨(dú)立完成測(cè)試項(xiàng)目。

            開(kāi)發(fā)年薪30-40萬(wàn),測(cè)試20-30萬(wàn),并有大量期權(quán)。

            謝謝,
            Jason huang
            jason@isofttalent.com
            010-5283 7763  回復(fù)  更多評(píng)論
              
            # re: 利用函數(shù)指針實(shí)現(xiàn)相同框架代碼的重用的一個(gè)示例
            2012-11-05 09:26 | zuhd
            if ( !pfn(pe32))//此處調(diào)用作為參數(shù)傳進(jìn)的函數(shù)指針(注意會(huì)根據(jù)pfn反回的值決定是否跳出循環(huán))

            看不出來(lái)你這什么時(shí)候返回false  回復(fù)  更多評(píng)論
              
            # re: 利用函數(shù)指針實(shí)現(xiàn)相同框架代碼的重用的一個(gè)示例
            2012-11-05 14:31 | demons
            @zuhd
            比如有時(shí)我們需要判斷系統(tǒng)當(dāng)前是否啟動(dòng)某個(gè)程序,如果已經(jīng)找到了一個(gè)實(shí)例,就不必繼續(xù)查找了,這時(shí)就返回false,框架中while循環(huán)就會(huì)結(jié)束,掃描終止。  回復(fù)  更多評(píng)論
              

            <2012年5月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            常用鏈接

            留言簿(1)

            隨筆分類(lèi)

            隨筆檔案

            文章分類(lèi)

            文章檔案

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            亚洲国产成人久久一区WWW| 99久久99久久久精品齐齐| 人妻精品久久久久中文字幕| 久久精品夜色噜噜亚洲A∨| 无码任你躁久久久久久久| 亚洲AV无码久久精品色欲| 欧美777精品久久久久网| 亚洲精品午夜国产va久久| 久久精品欧美日韩精品| 久久精品国产精品亜洲毛片| 国产成人精品综合久久久久| 丰满少妇人妻久久久久久4| 久久久久久久久久久| 99精品久久久久久久婷婷| 无码人妻精品一区二区三区久久久| 久久精品国产69国产精品亚洲| 久久中文字幕人妻丝袜| 久久精品国产91久久麻豆自制| 国产精品久久久香蕉| 99久久99久久精品国产片| 久久99精品久久久久久hb无码 | 亚洲伊人久久精品影院| 久久精品桃花综合| 久久婷婷激情综合色综合俺也去| 久久久91人妻无码精品蜜桃HD| 久久精品国产亚洲av麻豆小说 | 日本一区精品久久久久影院| 精品久久亚洲中文无码| 伊人久久大香线蕉无码麻豆| 久久97精品久久久久久久不卡| 久久天天躁狠狠躁夜夜不卡| 久久午夜无码鲁丝片午夜精品| 久久久久久久99精品免费观看| 久久精品aⅴ无码中文字字幕重口| 久久综合五月丁香久久激情| 久久青青草原综合伊人| 久久99国产精品99久久| 久久无码AV中文出轨人妻| 久久国产一片免费观看| 国产精品久久久99| 国内精品久久久久久不卡影院 |