freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

vc60編譯和鏈接時(shí)常見問題的解決和pragma(編輯修改稿)

2025-07-04 13:46 本頁面
 

【文章內(nèi)容簡介】 般說來發(fā)生連接錯(cuò)誤時(shí),編譯都已通過。產(chǎn)生連接錯(cuò)誤的原因非常多,尤其LNK2001錯(cuò)誤,常常使人不明其所以然。如果不深入地學(xué)習(xí)和理解VC++,要想改正連接錯(cuò)誤LNK2001非常困難。初學(xué)者在學(xué)習(xí)VC++的過程中,遇到的LNK2001錯(cuò)誤的錯(cuò)誤消息主要為:unresolved external symbol “symbol”(不確定的外部“符號”)。如果連接程序不能在所有的庫和目標(biāo)文件內(nèi)找到所引用的函數(shù)、變量或標(biāo)簽,將產(chǎn)生此錯(cuò)誤消息。一般來說,發(fā)生錯(cuò)誤的原因有兩個(gè):一是所引用的函數(shù)、變量不存在、拼寫不正確或者使用錯(cuò)誤;其次可能使用了不同版本的連接庫。以下是可能產(chǎn)生LNK2001錯(cuò)誤的原因:一.由于編碼錯(cuò)誤導(dǎo)致的LNK20011.不相匹配的程序代碼或模塊定義(.DEF)文件能導(dǎo)致LNK2001。例如, 如果在C++源文件內(nèi)聲明了一變量“var1”,卻試圖在另一文件內(nèi)以變量“VAR1”訪問該變量,將發(fā)生該錯(cuò)誤。2.,而不是在頭文件內(nèi)定義將導(dǎo)致LNK2001錯(cuò)誤。3.調(diào)用函數(shù)時(shí)如果所用的參數(shù)類型同函數(shù)聲明時(shí)的類型不符將會產(chǎn)生LNK2001。4.試圖從基類的構(gòu)造函數(shù)或析構(gòu)函數(shù)中調(diào)用虛擬函數(shù)時(shí)將會導(dǎo)致LNK2001。5.要注意函數(shù)和變量的可公用性,只有全局變量、函數(shù)是可公用的。靜態(tài)函數(shù)和靜態(tài)變量具有相同的使用范圍限制。當(dāng)試圖從文件外部訪問任何沒有在該文件內(nèi)聲明的靜態(tài)變量時(shí)將導(dǎo)致編譯錯(cuò)誤或LNK2001。函數(shù)內(nèi)聲明的變量(局部變量) 只能在該函數(shù)的范圍內(nèi)使用。C++ 的全局常量只有靜態(tài)連接性能。這不同于C,如果試圖在C++的多個(gè)文件內(nèi)使用全局變量也會產(chǎn)生LNK2001錯(cuò)誤。一種解決的方法是需要時(shí)在頭文件中加入該常量的初始化代碼,文件;另一種方法是使用時(shí)給該變量賦以常數(shù)。二.由于編譯和鏈接的設(shè)置而造成的LNK20011.如果編譯時(shí)使用的是/NOD(/NODEFAULTLIB)選項(xiàng),程序所需要的運(yùn)行庫和MFC庫在連接時(shí)由編譯器寫入目標(biāo)文件模塊,但除非在文件中明確包含這些庫名,否則這些庫不會被鏈接進(jìn)工程文件。在這種情況下使用/NOD將導(dǎo)致錯(cuò)誤LNK2001。2.如果沒有為wWinMainCRTStartup設(shè)定程序入口,在使用Unicode和MFC時(shí)將得到“unresolved external on _WinMain@16”的LNK2001錯(cuò)誤信息。3.使用/MD選項(xiàng)編譯時(shí),既然所有的運(yùn)行庫都被保留在動態(tài)鏈接庫之內(nèi),源文件中對“func”的引用,在目標(biāo)文件里即對“__imp__func” 的引用。,將在__imp__func上發(fā)生LNK2001;如果不使用/MD選項(xiàng)編譯。4.使用/ML選項(xiàng)編譯時(shí)。5.當(dāng)編譯調(diào)試版的應(yīng)用程序時(shí),如果采用發(fā)行版模態(tài)庫進(jìn)行連接也會產(chǎn)生LNK2001;同樣,使用調(diào)試版模態(tài)庫連接發(fā)行版應(yīng)用程序時(shí)也會產(chǎn)生相同的問題。6.不同版本的庫和編譯器的混合使用也能產(chǎn)生問題,因?yàn)樾掳娴膸炖锟赡馨缦鹊陌姹緵]有的符號和說明。編程時(shí)打開了函數(shù)內(nèi)聯(lián)(/Ob1或/Ob2),但是在描述該函數(shù)的相應(yīng)頭文件里卻關(guān)閉了函數(shù)內(nèi)聯(lián)(沒有inline關(guān)鍵字),這時(shí)將得到該錯(cuò)誤信息。為避免該問題的發(fā)生,應(yīng)該在相應(yīng)的頭文件中用inline關(guān)鍵字標(biāo)志內(nèi)聯(lián)函數(shù)。8.不正確的/SUBSYSTEM或/ENTRY設(shè)置也能導(dǎo)致LNK2001。pragma 用法 今天剛開始調(diào)試windows核心編程中的例程就感覺十分難懂,原因是自己的c++基本功力實(shí)在太弱了首先在windows編程的過程中大量的使用宏的問題。#pragma 的用法在所有的預(yù)處理指令中,Pragma 指令可能是最復(fù)雜的了,它的作用是設(shè)定編譯器的狀態(tài)或者是指示編譯器完成一些特定的動作。pragma指令對每個(gè)編譯器給出了一個(gè)方法,在保持與C和C ++語言完全兼容的情況下,給出主機(jī)或操作系統(tǒng)專有的特征。依據(jù)定義,編譯指示是機(jī)器或操作系統(tǒng)專有的,且對于每個(gè)編譯器都是不同的。其格式一般為: Pragma Para其中Par
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1