

下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1.8 驅(qū)動(dòng)代碼中C和C+代碼區(qū)別-24課A、函數(shù)調(diào)用約定 B、C和C+編譯方式C、用C+方式編譯驅(qū)動(dòng) D、C代碼升級(jí)至C+E、優(yōu)化21課的代碼課時(shí):16分*.c當(dāng)文件后綴名為*.c時(shí) 編譯器將會(huì)用C編譯器方式編譯*.cpp當(dāng)文件后綴名為*.cpp時(shí) 編譯器將會(huì)用C+編譯器方式編譯區(qū)別:解決辦法在需要用到C方式編譯的函數(shù)前加extern C需要用C方式編譯的頭文件做如下修改#pragma once #ifdef cplusplus extern C#endif#include /這里包含需要用C方式編譯的頭文件 #ifdef cplusplus#endif1errors in director
2、y g:驅(qū)動(dòng)教程024_驅(qū)動(dòng)代碼中c和c+代碼區(qū)別mini_ddk 1mini_ddk.obj : error LNK2001: unresolved external symbol struct_ServiceDescriptorTable * KeServiceDescriptorTable (?KeServiceDescriptorTable3PAU_ServiceDescriptorTableA) 1bufferoverflowk.lib(gs_support.obj) : error LNK2019: unresolved external symbol _DriverEntry8
3、referenced in function _GsDriverEntry8 1sysi386ddk_helloworld.sys : error LNK1120: 2 unresolved externals?DriverEntryYGJPAU_DRIVER_OBJECTPAU_UNICODE_STRINGZ_DriverEntry8 /要求格式?DriverEntryYGJPAU_DRIVER_OBJECTPAU_UNICODE_STRINGZ?實(shí)例 修改21課的代碼 升級(jí)到C+編譯模式A、為入口函數(shù) 添加extern C B、修改Source文件C、修改21課的BUGextern C d
4、eclspec(naked) stdcalltest(int a, int b)前面已經(jīng)完成了初級(jí)內(nèi)核代碼的編寫,已經(jīng)是一個(gè)小巧完整的驅(qū)動(dòng)文件了,本節(jié)課要講解一下理論知識(shí)。編譯器認(rèn)死理兒,載入文件時(shí).C就按C方式.CPP就按C+方式。我們將之前的.C文件改成.CPP,再用BUILD編譯一下就發(fā)現(xiàn)了一大堆的錯(cuò)誤,解決的辦法寫在教案中.將代碼加入頭文件再次編譯后只剩下3個(gè)錯(cuò)誤,頭文件的錯(cuò)誤已經(jīng)沒有了,再看下錯(cuò)誤信息(教案中的紅字).大概是說(shuō)函數(shù)符號(hào)沒有找到,另外入口函數(shù)也沒找到,總體上是LINK鏈接錯(cuò)誤,所以在這兩個(gè)函數(shù)前也要加入extern C按照C方式編譯.然后看一下mini_ddl.obj里
5、入口函數(shù)被替換成了一個(gè)長(zhǎng)串的入口函數(shù)?DriverEntryYGJPAU_DRIVER_OBJECTPAU_UNICODE_STRINGZ ?在 C 方式的時(shí)候是原來(lái)的入口函數(shù)_DriverEntry8雖然 DDK 方式編譯成功了,但是在 VC+中還是提示錯(cuò)誤,這是一個(gè)非常經(jīng)典的錯(cuò)誤,我們?cè)?屬性頁(yè) - C/C+ - 高級(jí) -編譯為 里面設(shè)置為”默認(rèn)”或者”編譯為 C+代碼”.還有在上節(jié)課的測(cè)試中有一個(gè) BUG,因?yàn)樵谛遁d函數(shù)中是直接恢復(fù)代碼,應(yīng)該加上一個(gè)判斷,如果在未HOOK 的情況下就不要再做代碼恢復(fù)了.比如在虛擬機(jī)里測(cè)試前面課程的代碼在卸載的時(shí)候就藍(lán)屏了,而更改后的代碼就不會(huì)藍(lán)屏了.前面我
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力安全生產(chǎn)風(fēng)險(xiǎn)
- 股權(quán)激勵(lì)居間合同范例
- 糖尿病的臨床護(hù)理途徑
- 商鋪轉(zhuǎn)讓居間協(xié)議樣本
- 跨行業(yè)攜手!房地產(chǎn)行業(yè)協(xié)會(huì)與科技企業(yè)簽訂創(chuàng)新合同合作
- 2024珠海市南方愛迪技工學(xué)校工作人員招聘考試及答案
- 2024沿河土家族自治縣中等職業(yè)學(xué)校工作人員招聘考試及答案
- 2024河南省工商行政管理學(xué)校工作人員招聘考試及答案
- 2024河北航空管理中等專業(yè)學(xué)校工作人員招聘考試及答案
- 互聯(lián)網(wǎng)技術(shù)服務(wù)框架合同
- 2025年中國(guó)短圓柱滾子軸承市場(chǎng)調(diào)查研究報(bào)告
- 湖北省十一校2024-2025學(xué)年高三第二次聯(lián)考數(shù)學(xué)試卷(解析版)
- 《手工制作》課件-幼兒園掛飾
- 鼓勵(lì)員工發(fā)現(xiàn)安全隱患的獎(jiǎng)勵(lì)制度
- 蘇教版一年級(jí)下冊(cè)數(shù)學(xué)全冊(cè)教學(xué)設(shè)計(jì)(配2025年春新版教材)
- 人武專干考試題型及答案
- 2025屆高三化學(xué)二輪復(fù)習(xí) 化學(xué)反應(yīng)原理綜合 課件
- 2025年北京五湖四海人力資源有限公司招聘筆試參考題庫(kù)含答案解析
- 常見的酸和堿第2課時(shí)酸的化學(xué)性質(zhì) 2024-2025學(xué)年九年級(jí)化學(xué)人教版(2024)下冊(cè)
- 歡樂購(gòu)物街-認(rèn)識(shí)人民幣(說(shuō)課稿)-2024-2025學(xué)年人教版數(shù)學(xué)一年級(jí)下冊(cè)
- 2025年中國(guó)南方航空股份有限公司招聘筆試參考題庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論