亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        二級(jí)考試C技巧:VC下dll程序的調(diào)試

        字號(hào):

        很多初學(xué)DLL和COM編程的人都為DLL的調(diào)試方法發(fā)愁。我結(jié)合自己學(xué)習(xí)COM的體驗(yàn),總結(jié)DLL程序的調(diào)試如下。
            DLL是一個(gè)不可運(yùn)行的程序,它必須有其它程序的加載才可運(yùn)行。故要調(diào)試DLL程序,需要一個(gè)測(cè)試程序。根據(jù)測(cè)試程序的不同,我將DLL調(diào)試分三種請(qǐng)況。
            1.測(cè)試程序有源碼。
            2.測(cè)試程序無源碼,只有可執(zhí)行(exe)文件。
            3.對(duì)DLLRegisterServer函數(shù)和DLLUnregisterServer函數(shù)的調(diào)試。
            一:測(cè)試程序有源碼
            對(duì)于這種情況,我們可將測(cè)試程序的工程(dllCall)和dll程序的工程(dllTest)建立在同一個(gè)工作區(qū)下。
            編譯鏈接dllCall文件,確保生成了dllCall.exe,然后我們將dllTest設(shè)置為活動(dòng)工程。因dllTest需要有測(cè)試程序,我們可按如下方法設(shè)置。
            選擇Project->Settings->Debug->Executable for Debug session:
            在其文本框中填入dllCall.exe的路徑。
            按以上操作設(shè)置好后,編譯,鏈接dllTest沒錯(cuò)后,開始調(diào)試。
            在dllCall中設(shè)置斷點(diǎn)。
            在dllTest中設(shè)置斷點(diǎn)。
            斷點(diǎn)設(shè)置好后,在確保dllTest為活動(dòng)工程的前提下,開始調(diào)試,程序?qū)⒃跀帱c(diǎn)處停下。
            二:測(cè)試程序無源碼
            如果測(cè)試程序無源碼,則不能將測(cè)試程序和dll程序聯(lián)合調(diào)試,但可以只調(diào)試dll文件。在這種情況下,dllCall.exe的路徑要填對(duì),確定dllCall.exe的確調(diào)用了dllTest工程下的dllTest.dll文件。
            三:對(duì)DLLRegisterServer函數(shù)和DLLUnregisterServer函數(shù)的調(diào)試
            編程com程序,一般將com的注冊(cè)和卸載集成在dll文件中,故在dll文件中會(huì)實(shí)現(xiàn)DllRegisterServer函數(shù)和DllUnregisterServer函數(shù),然后通過windows自帶的regsvr32.exe命令來實(shí)現(xiàn)dll的安裝和卸載。
            Regsvr32.exe dllTest.dll安裝dllTest.dll
            Regsvr32.exe /u dllTest.dll卸載dllTest.dll
            從上可看出,調(diào)試程序?yàn)镽egsvr32.exe,它帶有參數(shù),這是和上述兩種情況不同的地方,其余的過程基本相似。
            先看看DLLRegisterServer的調(diào)試,路徑設(shè)置。
            然后在DllRegisterServer處設(shè)置斷點(diǎn)。
            DllUnregisterServer調(diào)試。
            在DllUnregisterServer出設(shè)置斷點(diǎn)