毛片在线视频观看,一级日韩免费大片,在线网站黄色,澳门在线高清一级毛片

薈聚奇文、博采眾長(zhǎng)、見(jiàn)賢思齊
當(dāng)前位置:公文素材庫(kù) > 公文素材 > 范文素材 > 《測(cè)繪生產(chǎn)質(zhì)量管理規(guī)定》完全版

《測(cè)繪生產(chǎn)質(zhì)量管理規(guī)定》完全版

網(wǎng)站:公文素材庫(kù) | 時(shí)間:2019-05-29 01:01:20 | 移動(dòng)端:《測(cè)繪生產(chǎn)質(zhì)量管理規(guī)定》完全版

《測(cè)繪生產(chǎn)質(zhì)量管理規(guī)定》完全版

測(cè)繪生產(chǎn)質(zhì)量管理規(guī)定

國(guó)家測(cè)繪局1997年7月發(fā)布

第一章總則

第一條為了提高測(cè)繪生產(chǎn)質(zhì)量管理水平,確保測(cè)繪產(chǎn)品質(zhì)量,依據(jù)《中華人民共和國(guó)測(cè)繪法》及有關(guān)法規(guī),制定本規(guī)定。

第二條測(cè)繪生產(chǎn)質(zhì)量管理是指測(cè)繪單位從承接測(cè)繪任務(wù)、組織準(zhǔn)備、技術(shù)設(shè)計(jì)、生產(chǎn)作業(yè)直至產(chǎn)品交付使用全過(guò)程實(shí)施的質(zhì)量管理。

第三條測(cè)繪生產(chǎn)質(zhì)量管理貫徹“質(zhì)量第一、注重實(shí)效”的方針,以保證質(zhì)量為中心,滿足需求為目標(biāo),防檢結(jié)合為手段,全員參與為基礎(chǔ),促進(jìn)測(cè)繪單位走質(zhì)量效益型的發(fā)展道路。

第四條測(cè)繪單位必須經(jīng)常進(jìn)行質(zhì)量教育,開(kāi)展群眾性的質(zhì)量管理活動(dòng),不斷增強(qiáng)干部職工的質(zhì)量意識(shí),有計(jì)劃、分層次地組織崗位技術(shù)培訓(xùn),逐步實(shí)行持證上崗。

第五條測(cè)繪單位必須健全質(zhì)量管理的規(guī)章制度。甲級(jí)、乙級(jí)測(cè)繪資格單位應(yīng)當(dāng)設(shè)立質(zhì)量管理或質(zhì)量檢查機(jī)構(gòu);丙級(jí)、丁級(jí)測(cè)繪資格單位應(yīng)當(dāng)設(shè)立專職質(zhì)量管理或質(zhì)量檢查人員。第六條測(cè)繪單位應(yīng)當(dāng)按照國(guó)家的《質(zhì)量管理和質(zhì)量保證》標(biāo)準(zhǔn),推行全面質(zhì)量管理,建立和完善測(cè)繪質(zhì)量體系,并可自愿申請(qǐng)通過(guò)質(zhì)量體系認(rèn)證。

第二章測(cè)繪質(zhì)量責(zé)任制

第七條測(cè)繪單位必須建立以質(zhì)量為中心的技術(shù)經(jīng)濟(jì)責(zé)任制,明確各部門、各崗位的職責(zé)及相互關(guān)系,規(guī)定考核辦法,以作業(yè)質(zhì)量、工作質(zhì)量確保測(cè)繪產(chǎn)品質(zhì)量。

第八條測(cè)繪單位的法定代表人確定本單位的質(zhì)量方針和質(zhì)量目標(biāo),簽發(fā)質(zhì)量手冊(cè);建立本單位的質(zhì)量體系并保證其有效運(yùn)行;對(duì)提供的測(cè)繪產(chǎn)品承擔(dān)產(chǎn)品質(zhì)量責(zé)任。

第九條測(cè)繪單位的質(zhì)量主管負(fù)責(zé)人按照職責(zé)分工負(fù)責(zé)質(zhì)量方針、質(zhì)量目標(biāo)的貫徹實(shí)施,簽發(fā)有關(guān)的質(zhì)量文件及作業(yè)指導(dǎo)書(shū);組織編制測(cè)繪項(xiàng)目的技術(shù)設(shè)計(jì)書(shū),并對(duì)設(shè)計(jì)質(zhì)量負(fù)責(zé);處理生產(chǎn)過(guò)程中的重大技術(shù)問(wèn)題和質(zhì)量爭(zhēng)議;審核技術(shù)總結(jié);審定測(cè)繪產(chǎn)品的交付驗(yàn)收。第十條測(cè)繪單位的質(zhì)量管理、質(zhì)量檢查機(jī)構(gòu)及質(zhì)量檢查人員,在規(guī)定的職權(quán)范圍內(nèi),負(fù)責(zé)質(zhì)量管理的日常工作。編制年度質(zhì)量計(jì)劃,貫徹技術(shù)標(biāo)準(zhǔn)及質(zhì)量文件;對(duì)作業(yè)過(guò)程進(jìn)行現(xiàn)場(chǎng)監(jiān)督和檢查,處理質(zhì)量問(wèn)題;組織實(shí)施內(nèi)部質(zhì)量審核工作。

各級(jí)質(zhì)量檢查人員對(duì)其所檢查的產(chǎn)品質(zhì)量負(fù)責(zé),并有權(quán)予以質(zhì)量否決,有權(quán)越級(jí)反映質(zhì)量問(wèn)題。

第十一條生產(chǎn)崗位的作業(yè)人員必須嚴(yán)格執(zhí)行操作規(guī)程,按照技術(shù)設(shè)計(jì)進(jìn)行作業(yè),并對(duì)作業(yè)成果質(zhì)量負(fù)責(zé)。

其他崗位的工作人員,應(yīng)當(dāng)嚴(yán)格執(zhí)行有關(guān)的規(guī)章制度,保證本崗位的工作質(zhì)量。因工作質(zhì)量問(wèn)題影響產(chǎn)品質(zhì)量的,承擔(dān)相應(yīng)的質(zhì)量責(zé)任。

第十二條測(cè)繪單位可以按照測(cè)繪項(xiàng)目的實(shí)際情況實(shí)行項(xiàng)目質(zhì)量負(fù)責(zé)人制度。項(xiàng)目質(zhì)量負(fù)責(zé)人對(duì)該測(cè)繪項(xiàng)目的產(chǎn)品質(zhì)量負(fù)直接責(zé)任。

第三章生產(chǎn)組織準(zhǔn)備的質(zhì)量管理

第十三條測(cè)繪單位承接測(cè)繪任務(wù)時(shí),應(yīng)當(dāng)逐步實(shí)行合同評(píng)審(或計(jì)劃任務(wù)評(píng)審),保證具有滿足任務(wù)要求的實(shí)施能力,并將該項(xiàng)任務(wù)納入質(zhì)量管理網(wǎng)絡(luò)。合同評(píng)審結(jié)果作為技術(shù)設(shè)計(jì)的一項(xiàng)重要依據(jù)。

第十四條測(cè)繪任務(wù)的實(shí)施,應(yīng)堅(jiān)持先設(shè)計(jì)后生產(chǎn),不允許邊設(shè)計(jì)邊生產(chǎn),禁止沒(méi)有設(shè)計(jì)進(jìn)行生產(chǎn)。

技術(shù)設(shè)計(jì)書(shū)應(yīng)按測(cè)繪主管部門的有關(guān)規(guī)定經(jīng)過(guò)審核批準(zhǔn),方可付諸執(zhí)行。市場(chǎng)測(cè)繪任務(wù)根據(jù)具體情況編制技術(shù)設(shè)計(jì)書(shū)或測(cè)繪任務(wù)書(shū),作為測(cè)繪合同的附件。

第十五條測(cè)繪任務(wù)實(shí)施前,應(yīng)組織有關(guān)人員的技術(shù)培訓(xùn),學(xué)習(xí)技術(shù)設(shè)計(jì)書(shū)及有關(guān)的技術(shù)標(biāo)準(zhǔn)、操作規(guī)程。

第十六條測(cè)繪任務(wù)實(shí)施前,應(yīng)對(duì)需用的儀器、設(shè)備、工具進(jìn)行檢驗(yàn)和校正;在生產(chǎn)中應(yīng)用的計(jì)算機(jī)軟件及需用的各種物資,應(yīng)能保證滿足產(chǎn)品質(zhì)量的要求,不合格的不準(zhǔn)投入使用。

第四章生產(chǎn)作業(yè)過(guò)程的質(zhì)量管理

第十七條重大測(cè)繪項(xiàng)目應(yīng)實(shí)施首件產(chǎn)品的質(zhì)量檢驗(yàn),對(duì)技術(shù)設(shè)計(jì)進(jìn)行驗(yàn)證。首件產(chǎn)品質(zhì)量檢驗(yàn)點(diǎn)的設(shè)置,由測(cè)繪單位根據(jù)實(shí)際需要自行確定。

第十八條測(cè)繪單位必須制定完整可行的工序管理流程表,加強(qiáng)工序管理的各項(xiàng)基礎(chǔ)工作,有效控制影響產(chǎn)品質(zhì)量的各種因素。

第十九條生產(chǎn)作業(yè)中的工序產(chǎn)品必須達(dá)到規(guī)定的質(zhì)量要求,經(jīng)作業(yè)人員自查、互檢,如實(shí)填寫(xiě)質(zhì)量記錄,達(dá)到合格標(biāo)準(zhǔn)后,方可轉(zhuǎn)入下工序。

下工序有權(quán)退回不符合質(zhì)量要求的上工序產(chǎn)品,上工序應(yīng)及時(shí)進(jìn)行修正、處理。退回及修正的過(guò)程,都必須如實(shí)填寫(xiě)質(zhì)量記錄。

因質(zhì)量問(wèn)題造成下工序損失,或因錯(cuò)誤判斷造成上工序損失的,均應(yīng)承擔(dān)相應(yīng)的經(jīng)濟(jì)責(zé)任。

第二十條測(cè)繪單位應(yīng)當(dāng)在關(guān)鍵工序、重點(diǎn)工序設(shè)置必要的檢驗(yàn)點(diǎn),實(shí)施工序產(chǎn)品質(zhì)量的現(xiàn)場(chǎng)檢查,F(xiàn)場(chǎng)檢驗(yàn)點(diǎn)的設(shè)置,可以根據(jù)測(cè)繪任務(wù)的性質(zhì)、作業(yè)人員水平、降低質(zhì)量成本等因素,由測(cè)繪單位自行確定。

第二十一條對(duì)檢查發(fā)現(xiàn)的不合格品,應(yīng)及時(shí)進(jìn)行跟蹤處理,作出質(zhì)量記錄,采取糾正措施。不合格品經(jīng)返工修正后,應(yīng)重新進(jìn)行質(zhì)量檢查;不能進(jìn)行返工修正的,應(yīng)予報(bào)廢并履行審批手續(xù)。

第二十二條測(cè)繪單位必須建立內(nèi)部質(zhì)量審核制度。經(jīng)成果質(zhì)量過(guò)程檢查的測(cè)繪產(chǎn)品,必須通過(guò)質(zhì)量檢查機(jī)構(gòu)的最終檢查,評(píng)定質(zhì)量等級(jí),編寫(xiě)最終檢查報(bào)告。

過(guò)程檢查、最終檢查和質(zhì)量評(píng)定,按《測(cè)繪產(chǎn)品檢查驗(yàn)收規(guī)定》和《測(cè)繪產(chǎn)品質(zhì)量評(píng)定標(biāo)準(zhǔn)》執(zhí)行。

第五章產(chǎn)品使用過(guò)程的質(zhì)量管理

第二十三條測(cè)繪單位所交付的測(cè)繪產(chǎn)品,必須保證是合格品。

第二十四條測(cè)繪單位應(yīng)當(dāng)建立質(zhì)量信息反饋網(wǎng)絡(luò),主動(dòng)征求用戶對(duì)測(cè)繪質(zhì)量的意見(jiàn),并為用戶提供咨詢服務(wù)。

第二十五條測(cè)繪單位應(yīng)當(dāng)及時(shí)、認(rèn)真地處理用戶的質(zhì)量查詢和反饋意見(jiàn)。與用戶發(fā)生質(zhì)量爭(zhēng)議時(shí),按照《測(cè)繪質(zhì)量監(jiān)督管理辦法》的有關(guān)規(guī)定處理。

第六章質(zhì)量獎(jiǎng)懲

第二十六條測(cè)繪單位應(yīng)當(dāng)建立質(zhì)量獎(jiǎng)懲制度。對(duì)在質(zhì)量管理和提高產(chǎn)品質(zhì)量中作出顯著成績(jī)的基層單位和個(gè)人,應(yīng)給予獎(jiǎng)勵(lì),并可申報(bào)參加測(cè)繪主管部門組織的質(zhì)量評(píng)優(yōu)活動(dòng)。第二十七條對(duì)違章作業(yè),粗制濫造甚至偽造成果的有關(guān)責(zé)任人;對(duì)不負(fù)責(zé)任,漏檢錯(cuò)檢甚至弄虛作假、徇私舞弊的質(zhì)量管理、質(zhì)量檢查人員,依照《測(cè)繪質(zhì)量監(jiān)督管理辦法》的相應(yīng)條款進(jìn)行處理。測(cè)繪單位對(duì)有關(guān)責(zé)任人員還可給予內(nèi)部通報(bào)批評(píng)、行政處分及經(jīng)濟(jì)處罰。

第七章附則

第二十八條本規(guī)定由國(guó)家測(cè)繪局負(fù)責(zé)解釋。

第二十九條本規(guī)定自發(fā)布之日起施行。1988年3月國(guó)家測(cè)繪局發(fā)布的《測(cè)繪生產(chǎn)質(zhì)量管理規(guī)定》(試行)同時(shí)廢止。

擴(kuò)展閱讀:《VC++_201*入門經(jīng)典》完全版[]

《VisualC++201*入門教程》

寫(xiě)在前面

在我還在上學(xué)的時(shí)候,我選擇了C++,最初我用VC6作為我的IDE,我看過(guò)很多本C++的教材,有的適合我,有的不適合我,其中有一本叫《VisualC++201*入門經(jīng)典》的書(shū)幫了我不少的忙。因?yàn)橥ǔ5腃++教材都只會(huì)介紹C++的語(yǔ)法什么的,很少會(huì)告訴我們?nèi)绾稳ゾ幾g、運(yùn)行,告訴我們什么是控制臺(tái)程序,什么事Win程序,什么是GUI程序,C++能干什么,VC和C++的區(qū)別是什么,F(xiàn)在有很多的朋友應(yīng)該也有這些問(wèn)題吧?

學(xué)C++用C++也有幾年了,算不上熟悉,算是初窺門徑吧,我想我應(yīng)該做點(diǎn)什么幫助一下那些和曾經(jīng)的我一樣困惑的朋友,特別是學(xué)生朋友,告訴他們他們所困惑的問(wèn)題的答案。記得我學(xué)C++的時(shí)候,沒(méi)有人教,有的時(shí)候也走了不少?gòu)澛,甚至連調(diào)試也不會(huì),也不知道可以通過(guò)看調(diào)用堆?凑{(diào)用次序,還自己慢慢的去搜索,好傻啊。

接下來(lái)我會(huì)做一個(gè)《VisualC++201*入門教程》系列,用來(lái)幫助初學(xué)者。剛開(kāi)始學(xué)的時(shí)候是很痛苦的,這個(gè)我深有體會(huì),特別是身邊還沒(méi)有人能夠指導(dǎo)一二的。內(nèi)容主要涵蓋在Windows下面使用C++進(jìn)行開(kāi)發(fā)的常見(jiàn)內(nèi)容,VisualStudio201*的使用,如何創(chuàng)建新項(xiàng)目,如何調(diào)試,如果配置項(xiàng)目屬性等等,另外還會(huì)介紹VisualC++201*中新加如的一些內(nèi)容,包括一些新的STL組建,一些新的語(yǔ)法支持等等。

由于本人水平有限,其中難免有錯(cuò)誤,希望大家諒解,如果大家有發(fā)現(xiàn)問(wèn)題還請(qǐng)務(wù)必及時(shí)指出來(lái),否則誤導(dǎo)了他人我就罪不容恕了。注意,本教程非

C++教程,不會(huì)教你C++,只

會(huì)教你如何使用VisualC++201*去練習(xí)去學(xué)習(xí)其它C++教材上面的程序。因此建議大家認(rèn)真的去看其他的C++教程,在使用VisualC++201*實(shí)踐的時(shí)候如果遇到問(wèn)題可以到這里來(lái)參考。推薦《C++Primer》、《C++程序設(shè)計(jì)語(yǔ)言》《VisualC++201*入門經(jīng)典》。

第一章:關(guān)于VisualStudio、VC和C++的那些事首先,這三個(gè)東西有什么區(qū)別呢?VC和C++是相同的嗎,有什么區(qū)別呢?我剛開(kāi)始學(xué)C++的時(shí)候也有這樣的問(wèn)題,在這里我來(lái)替大家解釋一下他們到底是什么。

VisualStudio,我們一般都簡(jiǎn)稱為VS,VC全稱是VisualC++,C++就不用解釋了吧?VisualStudio其實(shí)是微軟開(kāi)發(fā)的一套工具集,它由各種各樣的工具組成,這就好像Office201*是由Word201*、Excel201*、Access201*等等組成的一個(gè)道理。其中VisualC++就是VisualStudio的一個(gè)重要的組成部分。VisualStudio可以用于生成Web應(yīng)用程序,也可以生成桌面應(yīng)用程序,在VisualStudio下面,除了VC,還有VisualC#,VisualBasic,過(guò)去還有VisualJ#,現(xiàn)在還有VisualF#等等組件工具,使用這些工具你可以使用C++語(yǔ)言、C#語(yǔ)言或者Basic語(yǔ)言(微軟改進(jìn)版)進(jìn)行開(kāi)發(fā)。這就好比桌上放著刀、叉、筷子,你可以用它們來(lái)吃飯,無(wú)論你用什么工具都可以,因?yàn)樗鼈兌际遣途叩囊环N。

VC,全稱是VisualC++,它只是一個(gè)工具而已。

C++是一門和C、Basic、C#、Java一個(gè)概念的東西,它是一門語(yǔ)言,這個(gè)概念就同漢語(yǔ)、英語(yǔ)、法語(yǔ)之間的關(guān)系一樣。語(yǔ)言的可以不同,他們有的復(fù)雜有的精簡(jiǎn),比如漢語(yǔ),我個(gè)人認(rèn)為這是這個(gè)星球上最復(fù)雜的語(yǔ)言;又比如電影《阿凡達(dá)》中外星人使用的語(yǔ)言,不過(guò)100都個(gè)單詞而已。當(dāng)然,語(yǔ)言并沒(méi)有高低貴賤之分,而對(duì)語(yǔ)言掌握的好不好,說(shuō)的好不好是有高下之別的。

一個(gè)語(yǔ)言都有哪些要素呢?語(yǔ)法就是其中一個(gè)重要的方面,比如你要對(duì)你所喜歡的人表達(dá)愛(ài)慕之情,那么你應(yīng)該說(shuō)“我愛(ài)你”,你不能說(shuō)“你愛(ài)我”,因?yàn)檫@搞錯(cuò)了主謂賓關(guān)系,因此我們通常都需要按照一定的規(guī)矩和原則表達(dá)才會(huì)讓別人正確理解我們真正的含義。在我們的漢語(yǔ)中有一些成語(yǔ),它們通常都比較簡(jiǎn)單短小,但是卻能表達(dá)非常強(qiáng)烈的感情,而且效果非常好。比如你想罵一個(gè)壞人“你實(shí)在是太變態(tài)了,這種事情都干得出來(lái)。”你可以這樣說(shuō):“你也太禽獸不如了!”對(duì)于編程的語(yǔ)言來(lái)說(shuō),其實(shí)也是有成語(yǔ)的,在我看來(lái),這就是庫(kù)函數(shù)。通常我們?cè)诰幊痰臅r(shí)候都推薦選擇庫(kù)函數(shù),因?yàn)樗ǔ?huì)比較快一些。一直以來(lái)都有不少人混淆VisualC++和VisualStudio,其實(shí)最初VisualC++發(fā)布的時(shí)候還沒(méi)有VisualStudio這個(gè)東西,VisualC++是一個(gè)獨(dú)立的開(kāi)發(fā)工具,與VisualBasic等并列,最后微軟將它們整合在一起組成了VisualStudio。

VisualC++從發(fā)布起到現(xiàn)在已經(jīng)有10個(gè)大版本了,我們這里介紹的VisualC++201*就是VisualC++10,簡(jiǎn)稱VC10。上朔10多年,VisualC++6.0發(fā)布了,這個(gè)被稱為史上最經(jīng)典的VC,現(xiàn)在有很多企業(yè)還在用它,大量的教材基于這個(gè)版本的VC來(lái)寫(xiě)的。然而實(shí)際上VC6并沒(méi)有想象中的那么美好,孱弱的IDE,不完善的STL等等讓它越來(lái)越不適應(yīng)時(shí)代的發(fā)展,同時(shí)由于后來(lái)的版本和它的差別越來(lái)越大,讓很多習(xí)慣于VC6教材的人在新版本上無(wú)所適從。VC6走向歷史的終結(jié)點(diǎn)其實(shí)是必然的,只在于時(shí)間問(wèn)題罷了,況且大部分人都有追求最新的“嗜好”,所以這里也選擇最新版的VC來(lái)做入門教程。下面來(lái)介紹下這個(gè)VC版本和VS版本的對(duì)應(yīng)關(guān)系:

VisualStudio.net(201*)-->VisualC++.net(201*)-->VisualC++7.0->_MSC_VER值1300

這個(gè)是微軟推出.net戰(zhàn)略之后的最早的一個(gè)版本的VC,這個(gè)版本相對(duì)VC6來(lái)說(shuō)變化并不是很大,一些不標(biāo)準(zhǔn)的語(yǔ)法依然得到支持,不過(guò)IDE界面已經(jīng)出現(xiàn)了VS時(shí)代的雛形。

VisualStuido.net201*->VisualC++.net201*->VisualC++7.1->_MSC_VER值1310

這個(gè)版本我覺(jué)得只能算是一個(gè)對(duì).net201*的一個(gè)Patch版本,解決了一些Bug,不規(guī)范的語(yǔ)法依然得到支持,比如for循環(huán)變量作用域的問(wèn)題。VisualStudio201*->VisualC++201*->VisualC++8.0->_MSC_VER1400

這個(gè)版本算是一個(gè)比較符合C++標(biāo)準(zhǔn)的VC版本了,微軟為這個(gè)版本的VC加入了大量的增強(qiáng)版的C庫(kù)函數(shù)(CRT函數(shù)),如strcpy_s之類,當(dāng)然,這部分并不是C和C++標(biāo)準(zhǔn)所要求的。

VisualStudio201*->VisualC++201*->VisualC++9.0->_MSC_VER1500

這個(gè)版本應(yīng)該是在Vista發(fā)布之后出的,如果你是在Vista或者Win7下面使用,那么應(yīng)該選擇這個(gè)版本。這個(gè)版本與VC201*變化并不大,不過(guò)它的SP1為C++帶來(lái)一些新的STL庫(kù)組件(tr1部分),以及MFC下面的Ribbon界面。VisualStudio201*->VisualC++201*->VisualC++10.0->_MSC_VER值1600.

這個(gè)就是我們即將要介紹的版本,那么讓我們來(lái)看一下它的啟動(dòng)畫(huà)面吧。

這個(gè)是VisualStudio201*中文旗艦版的啟動(dòng)畫(huà)面。下一章中,我將教大家安裝、配置VS201*/VC201*,以及如何使用它來(lái)創(chuàng)建第一個(gè)C++程序。如果你沒(méi)有下載過(guò)VisualStudio201*的話,那么請(qǐng)你提前下載好它吧:%E2d_%B7%B3_%DE%B2%C2%D2/blog/item/bb0975dd801291d58c1029f5.html

第二章安裝、配置和首次使用VS201*

本章將幫助大家安裝VisualC++201*,幫助大家做一些常見(jiàn)的配置,以及第一次使用它來(lái)寫(xiě)HelloWord程序。安裝

VisualC++201*是屬于VisualStudio201*的一部分,這個(gè)在前一章中已經(jīng)講解過(guò),實(shí)際上VisualC++201*也有更多的子版本,正如Windows7有旗艦版、家庭高級(jí)版、家庭初級(jí)版一樣。在上一章的下載地址中有兩個(gè)版本可以選擇,我選擇的時(shí)候旗艦版,這個(gè)功能最全面。

如果你下載完畢了,應(yīng)該有一個(gè)ISO鏡像文件,如果你是從我給的地址下載的,那么那個(gè)序列號(hào)已經(jīng)被替換成正版序列號(hào),直接安裝即可。下面是ISO文件截圖:

這就是光盤鏡像文件,我們有多種方式可以安裝它,你可以把它燒錄成光盤,也可以用虛擬光驅(qū)軟件安裝它,由于這個(gè)ISO已經(jīng)被修改過(guò)了,你甚至可以直接解壓它,然后運(yùn)行里面的setup.exe進(jìn)行安裝。

這里我使用虛擬光驅(qū)進(jìn)行說(shuō)明,首先我假設(shè)你已經(jīng)安裝好了虛擬光驅(qū)軟件DAEMONToolsLite,如果你還沒(méi)有安裝,請(qǐng)去游俠補(bǔ)丁網(wǎng)下載,因?yàn)樵谀抢锬憧偸悄苷业阶钚碌拿赓M(fèi)版本。

接下來(lái)我們通過(guò)虛擬光驅(qū)加載剛才下載好的ISO鏡像:

在彈出的對(duì)話框中選擇我們下載好的ISO文件。這個(gè)時(shí)候,虛擬光驅(qū)里面已經(jīng)替我們打開(kāi)了ISO文件,有的機(jī)器可能會(huì)自動(dòng)彈出安裝提示,有的不會(huì)。如果自動(dòng)彈出安裝提示,那么直接通過(guò)即可,如果沒(méi)有彈出,那么用資源管理器方式進(jìn)入虛擬光驅(qū)點(diǎn)擊Setup.exe即可開(kāi)始安裝。

由于我已經(jīng)安裝好了VS201*,所以接下來(lái)無(wú)法給大家截圖了,我就直接用文字描述吧。當(dāng)彈出VS201*安裝程序之后點(diǎn)下一步,然后我們可能會(huì)看到完全最小自定義這樣的選項(xiàng),我推薦大家選擇自定義,因?yàn)橹挥羞@樣我們才可以自定我們安裝的目錄。接下來(lái)會(huì)選擇安裝的組件。這個(gè)時(shí)候我們會(huì)看到大量的VS201*的組件,這里我們可以選擇是否安裝Basic是否安裝C#等等,我在網(wǎng)上找到一些圖片,雖然跟中文版201*不一樣,大家大概的樣子是一樣的,大家就湊合著看看吧。

下面是開(kāi)始的界面,我們應(yīng)該選擇安裝VS201*.

上面這個(gè)時(shí)候選擇同意。然后安裝包會(huì)開(kāi)始搜集信息:

選擇目錄:

然后就是開(kāi)始安裝了,注意安裝的時(shí)候可能需要重啟一兩次。

最后安裝成功:

配置

當(dāng)安裝成功之后,我們就可以開(kāi)始使用了,這里我先教大家做一些常見(jiàn)的配置,當(dāng)然大家也可以直接用默認(rèn)的設(shè)置,我這樣配置主要是為了方便。下面通過(guò)開(kāi)始菜單來(lái)啟動(dòng)VS201*吧:

如果你是第一次開(kāi)始,那么可能會(huì)讓你選擇默認(rèn)的環(huán)境設(shè)置,我們要使用VC當(dāng)然選擇VC的配置:

出現(xiàn)下面的畫(huà)面表示已經(jīng)成功安裝和運(yùn)行了。這是起始頁(yè)面,以后你會(huì)經(jīng)常見(jiàn)到它。

注意,你可能會(huì)沒(méi)有VAssistX這個(gè)菜單,因?yàn)檫@個(gè)是個(gè)外部工具,以后會(huì)給大家解釋它的用處,現(xiàn)在暫時(shí)忽略。接下來(lái)讓我們來(lái)做一些常見(jiàn)的設(shè)置。通過(guò)菜單工具》選項(xiàng)調(diào)出配置對(duì)話框,下面是一些常見(jiàn)的設(shè)置:

調(diào)處行號(hào),選擇文本編輯器,所有語(yǔ)言,把行號(hào)打成勾。如果你想調(diào)整字體或者顏色,那么可以在這里選擇:

單擊工具欄的空白區(qū)域,讓我們把生成工具欄調(diào)出來(lái):

這樣我們就可以直接在工具欄上面選擇編譯項(xiàng)目、編譯整個(gè)解決方案、運(yùn)行程序和調(diào)試程序了。選擇生成工具欄旁邊的小三角形可以自定,我們還可以添加一些按鈕:

單擊自定義界面下面的添加按鈕就可以添加新的按鈕了,現(xiàn)在我們把開(kāi)始執(zhí)行(不調(diào)試)添加工具欄中:

以前經(jīng)常有人問(wèn)我為什么我的程序閃一下就沒(méi)了,這就是因?yàn)樗鼈儼颜{(diào)試(F5,那個(gè)實(shí)心的三角形)當(dāng)成了運(yùn)行(不調(diào)試,Ctrl+F5,空心帶尾巴的三角形)了。當(dāng)然是一閃而過(guò)啦。關(guān)于調(diào)試以后說(shuō)到。

HelloWorld.

下面讓我們用VC++201*也就是VC10來(lái)做一個(gè)控制臺(tái)的HelloWorld程序吧。VC201*里面不能單獨(dú)編譯一個(gè).cpp或者一個(gè).c文件,這些文件必須依賴于某一個(gè)項(xiàng)目,因此我們必須創(chuàng)建一個(gè)項(xiàng)目。有很多種方法都可以創(chuàng)建項(xiàng)目,可以通過(guò)菜單:文件,新建,項(xiàng)目;也可以通過(guò)工具欄點(diǎn)擊新建項(xiàng)目進(jìn)行創(chuàng)建。這里我們點(diǎn)擊起始頁(yè)面上面的新建項(xiàng)目:

點(diǎn)擊之后進(jìn)入新建項(xiàng)目向?qū)В?/p>

上面選擇Win32控制臺(tái)應(yīng)用程序,名稱中輸入HelloWorld點(diǎn)確定,至于是否為解決方案創(chuàng)建目錄我們暫時(shí)不管,那主要區(qū)別在于解決方案是否和項(xiàng)目文件在同一目錄。

接下來(lái)進(jìn)入創(chuàng)建頁(yè)面,在Win32應(yīng)用程序向?qū)У牡谝粋(gè)頁(yè)面直接點(diǎn)下一步即可:

下個(gè)頁(yè)面記得選擇空項(xiàng)目,我們不需要預(yù)編譯頭:

點(diǎn)擊完成。

這時(shí)候一個(gè)空的項(xiàng)目編譯成功了,我們不妨編譯一些試試。點(diǎn)擊剛才添加的生成工具欄的生成按鈕:

這時(shí)候我們會(huì)遇到編譯錯(cuò)誤,為什么呢?因?yàn)槲覀冞沒(méi)有Main函數(shù),對(duì)于一個(gè)C++項(xiàng)目來(lái)說(shuō),一定要有一個(gè)且僅有一個(gè)main函數(shù)(Windows程序需要WinMain,區(qū)別以后再講),可以是隱式提供也可以是顯式提供,至于區(qū)別以后會(huì)講到。現(xiàn)在讓我們記住這個(gè)錯(cuò)誤,以后遇到這個(gè)錯(cuò)誤的時(shí)候一定要想想,我們項(xiàng)目中是否有Main函數(shù)。注意這時(shí)候即使你托一個(gè)有Main函數(shù)的文件到VC10中進(jìn)行編譯也是沒(méi)有意義的,因?yàn)槟莻(gè)文件并不是我們項(xiàng)目的一部分。

現(xiàn)在我們可以添加一個(gè)代碼文件進(jìn)來(lái)了,這個(gè)代碼文件可以是已經(jīng)存在的也可以是新建的,這里新建一個(gè)。右鍵單擊項(xiàng)目名稱,選擇添加,新建項(xiàng):

在向?qū)е羞x擇代碼、C++文件(.cpp),名稱輸入Main,確定。

這時(shí)候已經(jīng)成功添加了一個(gè)Main文件,注意添加新文件的時(shí)候要防止重名:然后我們輸入最簡(jiǎn)單的幾行代碼,然后編譯它吧,編譯方法和上面一樣。

如果編譯成功你會(huì)看到上面的畫(huà)面,如果失敗會(huì)有錯(cuò)誤提示,那么你可以根據(jù)提示去修改項(xiàng)目配置或者代碼。然后讓我們用Ctrl+F5或者點(diǎn)那個(gè)空心三角形運(yùn)行一下吧:OK了,接下來(lái)你可以通過(guò)更改這個(gè)程序去練習(xí)C++教材上面的程序了。

這一章的內(nèi)容就是這么多了,下一章中我們將討論以下內(nèi)容:什么是C++?什么是編程等等。

第三章關(guān)于C++的一些問(wèn)題

這一回我自己都不知道應(yīng)該寫(xiě)點(diǎn)什么好,或許今天的篇幅會(huì)比往常短很多。我說(shuō)過(guò),這不是C++的教程,因?yàn)槲疫沒(méi)有那個(gè)能力來(lái)教大家C++,我能做的,是分享一些學(xué)習(xí)的經(jīng)驗(yàn),以及教新手如何使用VC201*這個(gè)工具去練習(xí)和實(shí)踐其它C++教材上面的程序,如《C++Primer》等。今天說(shuō)的是我學(xué)習(xí)和使用C++這些年來(lái)對(duì)C++的一些理解,這樣的日志其實(shí)是最難寫(xiě)的,因?yàn)楸娍陔y調(diào),為什么這么說(shuō)呢?同樣的一段音樂(lè)不同的人去傾聽(tīng)都會(huì)有不同的感受,不同的心境去聽(tīng)也會(huì)有不同的感覺(jué)。記得當(dāng)年我在聽(tīng)雅尼的《IfIcouldtellyou》聽(tīng)到的是無(wú)盡的傷感和無(wú)奈,而我的朋友卻怎么也聽(tīng)不出來(lái),呵,你去聽(tīng)聽(tīng)之后會(huì)有什么感覺(jué)?好,回歸正題吧。什么是編程

下面這段話我是從百度百科“編程”詞條復(fù)制過(guò)來(lái)的,不敢掠人之美:

編程就是讓計(jì)算機(jī)為解決某個(gè)問(wèn)題而使用某種程序設(shè)計(jì)語(yǔ)言編寫(xiě)

程序代碼,并最終得到結(jié)果的過(guò)程。為了使計(jì)算機(jī)能夠理解人的意圖,人類就必須要將需解決的問(wèn)題的思路、方法、和手段通過(guò)計(jì)算機(jī)能夠理解的形式告訴計(jì)算機(jī),使得計(jì)算機(jī)能夠根據(jù)人的指令一步一步去工作,完成某種特定的任務(wù)。這種人和計(jì)算機(jī)之間交流的過(guò)程就是編程。

這段話說(shuō)的比較明白,我們?nèi)绻胱層?jì)算機(jī)按照我們想要的方式工作,那么我們必須給它命令,有的常見(jiàn)的任務(wù)已經(jīng)由操作系統(tǒng)幫助我們提供了,操作系統(tǒng)將一些簡(jiǎn)單的指令封裝成一個(gè)簡(jiǎn)單的操作,使得我們的操作更容易更簡(jiǎn)單,然而操作系統(tǒng)提供的操作始終是有限的,如果要擴(kuò)展計(jì)算機(jī)的軟件系統(tǒng),就需要編程了。什么是編程語(yǔ)言

如上所說(shuō),編程語(yǔ)言就是人類與計(jì)算機(jī)交流的橋梁。首先編程語(yǔ)言必須是計(jì)算機(jī)可以理解的或者是可以間接轉(zhuǎn)換成計(jì)算機(jī)可以理解的指令的東西。打個(gè)比方,如果你在一臺(tái)普通電腦面前站著,大叫道:“電腦,給哥把C盤根目錄下面的A文件拷貝到D盤根目錄下面去”。我猜想你就算叫上一天也沒(méi)用,因?yàn)槠胀ǖ碾娔X無(wú)法識(shí)別你的指令,這就算是對(duì)“機(jī)”彈琴吧。什么是編譯器

如上所說(shuō),編程語(yǔ)言是計(jì)算機(jī)可以直接理解的如機(jī)器碼或者可以間接轉(zhuǎn)換成計(jì)算機(jī)可以理解的指令的東西。那么C++就屬于后者,那么是什么把C++翻譯成計(jì)算機(jī)可以識(shí)別的指令的呢?這就是編譯器。什么是

C++

我不想說(shuō)C++的歷史了,我想說(shuō),它是一門編程語(yǔ)言,它可以通過(guò)編譯器的翻譯成為計(jì)算機(jī)可以識(shí)別的指令。比如我們常見(jiàn)的C++代碼:inta=3+1;cout些新的類,引用一些新的命名空間,其實(shí)C++也是這樣的,要做更具體的事情,就需要除C++本身之外的更多東西才行。

因此,要用C++來(lái)做事情,除了C++的基本語(yǔ)法之外,還需要學(xué)習(xí)一些其它一些內(nèi)容如WindowsAPI、MFC、DirectX3DAPI等。C++、C#、Java

到底誰(shuí)好?

對(duì)于這個(gè)問(wèn)題,我想說(shuō)的是:語(yǔ)言無(wú)貴賤,技術(shù)有高低。其實(shí)無(wú)論什么語(yǔ)言,它們?cè)谶@里都是編程語(yǔ)言,也許它們看起來(lái)不一樣,它們用起來(lái)也不一樣,它們的“翻譯”編譯器不一樣,但是它們的本質(zhì)作用就是要用它們自己的方式將我們?nèi)祟惖慕鉀Q問(wèn)題的方法、思路和流程告知給計(jì)算機(jī)。這也就是為什么C++、C#、Java可以相互交互的原因。

每個(gè)語(yǔ)言就像江湖上的各門派的武功一樣,其實(shí)真的沒(méi)有高下之分,只有個(gè)人的修為,少林武功就一定強(qiáng)于武當(dāng)么?《碧血?jiǎng)Α分性兄静灰灿闷掌胀ㄍǖ奈逍腥瓝魸⒘藰s彩么?只是不同的武功在不同的條件下表現(xiàn)不同,他們各自占據(jù)了自己有利的地位罷了,以楊家槍法為例,或許二人比武它不厲害,但是征戰(zhàn)沙場(chǎng)估計(jì)是再適合不過(guò)了。

因此不要再糾結(jié)什么語(yǔ)言好,什么語(yǔ)言流行了,選擇一個(gè)自己喜歡的方向,然后調(diào)查好那個(gè)方向最常用最適合的語(yǔ)言,然后集中注意力堅(jiān)持的去學(xué)習(xí)它,這就好了。

今天的內(nèi)容就是這些,希望對(duì)大家有幫助。請(qǐng)大家務(wù)必好好學(xué)習(xí)C++教材,并使用VC201*好好演練,最好能夠舉一反三自己創(chuàng)造問(wèn)題自己解決!多看看百度知道C/C++下面的那些問(wèn)題,每解決一個(gè)那樣的問(wèn)題,你自己也會(huì)進(jìn)步。

第四章VC201*中初學(xué)者常見(jiàn)錯(cuò)誤、警告和問(wèn)題這一章將幫助大家解釋一些常見(jiàn)的錯(cuò)誤、警告和問(wèn)題,幫助大家去理解和解決一些常見(jiàn)問(wèn)題,并了解它的根本原因。iostream.h

下面的代碼為什么在VC201*下面編譯不過(guò)去?#includeintmain(){

cout錯(cuò)誤信息:fatalerrorC1083:無(wú)法打開(kāi)包括文件:“iostream.h”:Nosuchfileordirectory

造成這個(gè)錯(cuò)誤的原因在于歷史原因,在過(guò)去C++98標(biāo)準(zhǔn)尚未訂立的時(shí)候,C++的標(biāo)準(zhǔn)輸入輸出流確實(shí)是定義在這個(gè)文件里面的,這是C風(fēng)格的定義方法,隨著C++98標(biāo)準(zhǔn)的確定,iostream.h已經(jīng)被取消,至少在VC201*下面是這樣的,取而代之的是我們要用頭文件來(lái)代替,你甚至可以認(rèn)為是這樣定義的:namespacestd{

#include"iostream.h"}

因此我們可以簡(jiǎn)單的修改我們的HelloWorld。#includeusingnamespacestd;intmain(){

cout上面的strcpy會(huì)產(chǎn)生這個(gè)警告:

warningC4996:"strcpy":Thisfunctionorvariablemaybeunsafe.Considerusingstrcpy_sinstead.Todisabledeprecation,use_CRT_SECURE_NO_WARNINGS.Seeonlinehelpfordetails.

這是因?yàn)閂C從201*版本開(kāi)始,微軟引入了一系列的安全加強(qiáng)的函數(shù)來(lái)增強(qiáng)CRT(C運(yùn)行時(shí)),這里對(duì)應(yīng)的是strcpy_s。_s意為safe的意思,同樣的道理,strcat也是同樣。因此要解決這個(gè)問(wèn)題,我們可以用strcpy_s來(lái)替換strcpy,但是注意strcpy_s并非所有編譯器都提供,因此如果要跨編譯器,請(qǐng)采用錯(cuò)誤信息中所提示的方式,定義

_CRT_SECURE_NO_WARNINGS宏來(lái)掩耳盜鈴吧。另外注意并非所有的加強(qiáng)函數(shù)都是在屁股后面加_s,比如stricmp這個(gè)字符串比較函數(shù)的增強(qiáng)版名字是_stricmp。下面,用strcpy_s來(lái)更改程序:intmain(){

charsz[128]={0};

strcpy_s(sz,"HelloWorld!");coutreturn0;}

貌似沒(méi)什么問(wèn)題吧?錯(cuò)了,如果你是按照我教你的方法創(chuàng)建的控制臺(tái)空工程的話,那么會(huì)有編譯錯(cuò)誤:

errorC2664:“MessageBoxW”:不能將參數(shù)2從“constchar[17]”轉(zhuǎn)換為“LPCWSTR”

這個(gè)問(wèn)題太普遍了,幾乎所有的初學(xué)者都會(huì)遇到而且感到難以應(yīng)付,因?yàn)榘凑仗崾臼褂?LPCWSTR)強(qiáng)制轉(zhuǎn)型貌似并不能幫助我們解決問(wèn)題,而且這個(gè)程序在VC6下面應(yīng)該是沒(méi)有任何問(wèn)題的,那問(wèn)題出現(xiàn)在哪里呢?問(wèn)題在這里,請(qǐng)右鍵單擊解決方案瀏覽器下面的項(xiàng)目,屬性,問(wèn)題的根本就是字符集問(wèn)題,在VC6中,我們默認(rèn)使用的是多字節(jié)字符集,而現(xiàn)在我們默認(rèn)需要的是UNICODE字符集,簡(jiǎn)單的,我們把這個(gè)字符集改成多字節(jié)字符集這個(gè)問(wèn)題就解決了:

再試試應(yīng)該就可以了吧?但是我并不推薦大家這么做,因?yàn)樽屪约旱某绦蜻m應(yīng)各種字符集是我們寫(xiě)代碼的人義不容辭的義務(wù)。我們把程序改成下面這樣:#include#include#includeusingnamespacestd;

intmain(){

MessageBox(NULL,TEXT("你好HelloWorld!"),TEXT("Information"),0);MessageBox(NULL,_T("你好HelloWorld!"),_T("Information"),0);return0;}

用兩個(gè)宏TEXT或者_(dá)T都可以解決這個(gè)問(wèn)題,它們兩個(gè)并沒(méi)有太大區(qū)別,也許區(qū)別在于前者是通過(guò)windows.h頭文件引入的,而_T是通過(guò)tchar.h引入的,我推薦大家使用_T和tchar.h,因?yàn)閠char.h還幫助我們引入了其它一些很有用的宏,比如_tcscpy_s,這個(gè)宏在使用UNICODE字符集的時(shí)候被替換成wcscpy_s,在使用多字節(jié)字符集的使用被替換成strcpy_s。關(guān)于這部分的內(nèi)容,請(qǐng)大家不要錯(cuò)過(guò)《Windows核心編程》的第二章(第四版或第五版都可以),以及《深入學(xué)習(xí)C++String2.1版》。它們都有提到。有人聽(tīng)說(shuō)_T可以把多字節(jié)字符串轉(zhuǎn)換成UNICODE,因此他寫(xiě)了如下的代碼:constchar*pStr="haha哈哈";

MessageBox(NULL,_T(pStr),_T("Information"),0);

當(dāng)然,除非你運(yùn)氣好的抓狂,否則你是編譯不過(guò)去的,為什么呢?我們現(xiàn)在應(yīng)該知道對(duì)于"Hello"這樣的字符串,VC201*會(huì)默認(rèn)的將它視為constchar*,即多字節(jié)字符串,而L"Hello"前面有個(gè)L前綴的被視為UNICODE字符串,這和C#是有區(qū)別的,因?yàn)镃#的字符串總是被視為UNICODE,C++/CLI下面編譯器也會(huì)幫助我們做到這件事情,所以它們不需要L(C++/CLI兼容L這種寫(xiě)法)。讓我們看看_T的定義吧:

#definewxCONCAT_HELPER(text,line)text##line

/*couldalreadybedefinedbytchar.h(it"squasistandard)*/#ifndef_T

#if!wxUSE_UNICODE#define_T(x)x#else/*Unicode*/

/*usewxCONCAT_HELPERsothatxcouldbeexpandedifit"samacro*/#define_T(x)wxCONCAT_HELPER(L,x)#endif/*ASCII/Unicode*/#endif/*!defined(_T)*/

_T在UNICODE下面最終會(huì)被替換成L##x。##是一個(gè)編譯預(yù)處理指令,意味著讓L和x貼在一起,比如L##"Hello"最終就是L"Hello",因此它可以把"Hello"轉(zhuǎn)換成UNICODE字符串。那為什么上面的程序不行呢?讓我們看看_T("pStr")會(huì)被替換成什么:L##pStr->LpStr,哦,LpStr是一個(gè)新的標(biāo)識(shí)符,如果你沒(méi)有定義過(guò)它,你當(dāng)然不能通過(guò)編譯啦。因此我們可以了解到_T這樣的宏只能處理直接的常量字符串,不能處理其它的情況。而我們上面演示的那種情況需要我們動(dòng)態(tài)的去轉(zhuǎn)換編碼,Windows有API可以幫助我們做到,C庫(kù)也有函數(shù)可以幫助我們。恰好我曾經(jīng)寫(xiě)過(guò)這樣的代碼,歡迎大家參考:ASCII/UNICODE/UTF8字符串互相轉(zhuǎn)換的C++代碼

對(duì)于_T宏,再說(shuō)一點(diǎn)東西,或許你會(huì)感到奇怪為什么_T不直接定義成#define_T(x)L##x,而要繞個(gè)圈子去調(diào)用wxCONCAT_HELPER呢?這實(shí)際上涉及到宏展開(kāi)順序和截?cái)嗟膯?wèn)題。在這里,我們需要說(shuō)一個(gè)宏參數(shù)的概念,這很函數(shù)的參數(shù)是類似的,這里_T(x)的x就是宏參數(shù),好,記住下面一句話:

如果你定義的宏中使用了#或者是##的話,宏參數(shù)將不會(huì)被展開(kāi),也就是說(shuō)_T(x)如果直接定義成L##x那么在下面這種情況就會(huì)出錯(cuò)(PS:#是給參數(shù)加引號(hào)的意思):

_T(__FUNCTION__),__FUNCTION__是一個(gè)預(yù)定義的宏,它代表了當(dāng)前函數(shù)的名字,這個(gè)展開(kāi)會(huì)是什么呢?L__FUNCTION__。為什么間接調(diào)用wxCONCAT_HELPER就能得到正確的結(jié)果呢?因?yàn)楫?dāng)我們調(diào)用wxCONCAT_HELPER的時(shí)候,__FUNCTION__已經(jīng)被_T展開(kāi)成了函數(shù)名。

說(shuō)多了說(shuō)多了,如果你覺(jué)得復(fù)雜可以暫時(shí)跳過(guò)這些東西,我只是順便說(shuō)說(shuō)。重定義的編譯錯(cuò)誤和鏈接錯(cuò)誤讓我們?cè)陧?xiàng)目里面再添加一個(gè)Test.h頭文件,方法是右擊解決方案中的項(xiàng)目,添加,新建項(xiàng),C++頭文件,名稱輸入test.h。然后我們?cè)趖est.h中輸入:/*#pragmaonce*/voidprint(){}

回到main.cpp中:#includeusingnamespacestd;#include"Test.h"#include"Test.h"intmain(){return0;}

編譯一下我們會(huì)得到重定義的編譯錯(cuò)誤:errorC2084:函數(shù)“voidprint(void)”已有主體

或許你會(huì)說(shuō),你引用(#include)了兩次,我沒(méi)你那么傻,我只引用一次不就好了么?是的。你聰明,但是是小聰明哈,因?yàn)槟悴荒鼙WC每個(gè)人都不去引用它。

這個(gè)問(wèn)題演示的是#pragmaonce的用處,讓我們解開(kāi)它的注釋。編譯成功!#pragmaonce的作用就在于防止頭文件被多次引用。你或許見(jiàn)過(guò)#ifndef__TEST_H__#define__TEST_H__代碼#endif

這樣的代碼,它們的作用是一樣的,如果你跟我一樣懶,那么就用#pragmaonce,如果你打算去沒(méi)有這個(gè)指令的編譯器上編譯代碼,那么還是用后面一種方式吧。

現(xiàn)在讓我們來(lái)見(jiàn)識(shí)一個(gè)對(duì)初學(xué)者稍微復(fù)雜一點(diǎn)的鏈接錯(cuò)誤,用創(chuàng)建main.cpp的方法再添加一個(gè)test.h頭文件,輸入#include"Test.h"即可。

讓我們?cè)倬幾g一次。

1>test.obj:errorLNK201*:"void__cdeclprint(void)"(?print@@YAXXZ)已經(jīng)在Main.obj中定義

1>e:\\documents\\visualstudio201*\\Projects\\HelloWorld\\Debug\\HelloWorld.exe:fatalerrorLNK1169:找到一個(gè)或多個(gè)多重定義的符號(hào)

如果說(shuō)編譯錯(cuò)誤好找的話,鏈接錯(cuò)誤對(duì)于初學(xué)者來(lái)說(shuō)就有點(diǎn)麻煩了,聰明的初學(xué)者會(huì)去Google、百度尋找答案,笨的初學(xué)者就會(huì)找所謂的高手、前輩問(wèn),而這些高手Or前輩未必有心情為你解釋。要解決這個(gè)錯(cuò)誤有無(wú)數(shù)種方法。1.內(nèi)聯(lián),把print聲明為內(nèi)聯(lián)函數(shù)。inlinevoidprint(){}

這個(gè)方法的好處是簡(jiǎn)單,壞處是局限性太強(qiáng),意味著你總是需要公開(kāi)print的實(shí)現(xiàn),因?yàn)閮?nèi)聯(lián)函數(shù)必須在編譯時(shí)就知道實(shí)現(xiàn)才行。2.static,把print聲明為static函數(shù):staticvoidprint()。

這便告訴編譯器,哥是唯一的,而且哥只能被本編譯單元的代碼調(diào)用,這和extern是對(duì)應(yīng)的。簡(jiǎn)單來(lái)說(shuō),想要哥幫你做事,請(qǐng)先include哥聲明的頭文件,也就是#include"test.h"。3..h頭文件中只放聲明,實(shí)現(xiàn)放到.cpp中去。

現(xiàn)在test.h中只有voidprint();,而實(shí)現(xiàn)在test.cpp中:#include"Test.h"voidprint(){

inta=1;

cout

我把不同功能的代碼和文件放在不同的Filter下面,如何添加這樣的Filter呢?

這樣就可以添加篩選器了,默認(rèn)情況下VS為我們創(chuàng)建三個(gè)篩選器:頭文件、源文件和資源文件,實(shí)際上我們可以再增加很多。這樣區(qū)分開(kāi)的好處就是各個(gè)功能的代碼被分開(kāi)了,在文件很多的情況下不會(huì)造成混亂。如TextSearcher,它的搜索算法、軟件控制邏輯、自定義控件、GUI模塊、線程化操作都是分開(kāi)的,這樣我可以很容易找到我想找的文件,而且還可以檢視自己的模塊劃分是否合理等等。

接下來(lái)推薦大家在項(xiàng)目資源瀏覽器中為不同的文件劃分目錄。

比如上圖將頭文件和源文件、資源圖標(biāo)文件、本地化文件和配置文件分開(kāi)組織,這樣也是為了防止混亂。值得注意的是當(dāng)我們把文件用文件分開(kāi)的時(shí)候,需要在項(xiàng)目屬性設(shè)置里面包含我們的子目錄,否則我們無(wú)法在源文件中直接用#include指令包含我們的頭文件。如下圖所示這樣的情況,如果不添加,無(wú)法找到頭文件。

如下圖所示,找到項(xiàng)目屬性中,C++,常規(guī)中把我們的子目錄作為附加路徑添加到“附加包含目錄”中。

使用SVN或其它源代碼管理工具管理我們的項(xiàng)目

如果你打算寫(xiě)一個(gè)比較大一點(diǎn)的項(xiàng)目,我推薦你使用源代碼管理工具來(lái)管理你的C++項(xiàng)目,你可以選擇SVN,也可以選擇其它的,我推薦SVN,因?yàn)楹?jiǎn)單容易上手。當(dāng)你在做一個(gè)很復(fù)雜的東西的時(shí)候,花了兩三天的時(shí)間去做修改,不過(guò)后來(lái)發(fā)現(xiàn)這個(gè)修改并不合適,想還原到三天以前,如果你沒(méi)有用源代碼管理工具管理自己的項(xiàng)目也沒(méi)有自己手動(dòng)的備份,那恭喜你,你得開(kāi)始人肉還原了,這是多么悲劇的一件事情啊,然而如果你使用了SVN管理的話,只需要在三天前開(kāi)始修改前的最后一次穩(wěn)定版本Commit一次,三天之后如果要還原,只需要使用工具Revert就好了,而且不但可以回到三天前的版本,你甚至可以回到以前每一次Commit的版本,(⊙o⊙)哇,這是多么好的工具!要使用SVN,首先需要SVN客戶端,SVN服務(wù)器是可選的。我推薦大家使用TortoiseSVN這個(gè)SVN客戶端,因?yàn)樗?jiǎn)單易用、免費(fèi),支持Windows32Bit、64Bit,你可以去他們的官方網(wǎng)站下載,地址點(diǎn)我。有了這個(gè)工具當(dāng)然還不夠,為了讓我們的SVN跟VS201*結(jié)合的更緊密,我們需要再下載一個(gè)SVNForVS的插件,我強(qiáng)烈推薦你使用它,因?yàn)樗卜浅:?jiǎn)單易用,下載地址點(diǎn)我。最新版是支持VS201*的。當(dāng)你裝了這個(gè)插件的時(shí)候,如果你的項(xiàng)目是在SVN的管理之下,那么你的項(xiàng)目看起來(lái)會(huì)一些不同:

看到文件左邊的勾了嗎?灰色的勾表示正常,而橙色的勾表示已經(jīng)更改了,而PendingChanges則告訴我們哪些文件時(shí)新加的,哪些文件被改過(guò)了,如果要還原的話,只需要選擇該文件,右鍵點(diǎn)擊,Revert就好了:

如果你已經(jīng)安裝好了AnkhSVN插件但是又看不到的話,那么請(qǐng)檢查下系統(tǒng)選項(xiàng)卡里面是否選擇了它作為默認(rèn)的源代碼管理工具:

回過(guò)頭去繼續(xù)說(shuō)SVN,當(dāng)我們安裝好TortoiseSVN之后(安裝后可能需要重啟),我們?cè)谫Y源管理器中點(diǎn)擊右鍵的時(shí)候就能看到它的菜單了:

雖然TortoiseSVN有中文語(yǔ)言包,但是我推薦大家使用英文的,就像古詩(shī)一定要用中文來(lái)表達(dá)一樣,沒(méi)有比英語(yǔ)單詞表達(dá)SVN項(xiàng)目管理更恰當(dāng)?shù)脑~了。

SVNCheckOut可以讓你獲取其它地方SVN服務(wù)器上面的某個(gè)項(xiàng)目的源碼,當(dāng)然,前提是你要有權(quán)限才行,現(xiàn)在讓我們?cè)囋。隨便找個(gè)盤符如F盤,點(diǎn)右鍵,選擇SVNCheckOut,然后UrlofRepository中輸入svn://這個(gè)地址,其它的不變,點(diǎn)擊OK。如圖所示:

如果不出意外你能看到:

如果你看到這個(gè)畫(huà)面說(shuō)明你已經(jīng)CheckOut成功了,那么恭喜你,你已經(jīng)取到了TextSearcher的源碼,當(dāng)然要說(shuō)一點(diǎn)的是,這個(gè)源碼可能你取到之后編譯不了,因?yàn)檫有另外一些依賴項(xiàng)如dbsoft、boost、wxWidgets并不在這個(gè)SVN上面。

這樣大家就可以去一些開(kāi)源的網(wǎng)站上面Check你想要的東西了,哈哈。推薦大家去這個(gè)網(wǎng)站找自己感興趣的代碼CheckOut:

現(xiàn)在我們說(shuō)如何管理自己的項(xiàng)目,大家可以像我一樣去一些提供免費(fèi)SVN服務(wù)器服務(wù)的網(wǎng)站上面注冊(cè)一個(gè)賬號(hào)建立項(xiàng)目就好了,比如說(shuō)我使用的這個(gè),這個(gè)畢竟是國(guó)內(nèi)的,另外上面的sourceforge.net也可以。當(dāng)你注冊(cè)建立項(xiàng)目成功之后就可以通過(guò)菜單Import把需要導(dǎo)入的東西導(dǎo)入到SVN服務(wù)器了:

導(dǎo)入界面的地址欄輸入我們的SVN服務(wù)器地址即可,類似于:svn://。導(dǎo)出的時(shí)候記得輸入日志。除了可以導(dǎo)入SVN服務(wù)器之外,我們還可以使用文件協(xié)議在自己的電腦上管理我們的代碼,如果你不需要在多臺(tái)電腦上面共同維護(hù)這個(gè)項(xiàng)目的話。

讓我們隨便找個(gè)地方新建一個(gè)文件夾,如D:\\TestSVNServer這個(gè)文件夾,然后對(duì)著這個(gè)新建的文件夾點(diǎn)右鍵,選擇SVN>Createrepositoryhere,OK,你的本地SVN服務(wù)器已經(jīng)建好了。如果創(chuàng)建成功,你會(huì)發(fā)現(xiàn)這個(gè)文件夾里面多了好多東西:

沒(méi)關(guān)系,這是SVN服務(wù)必須要的一些東西,現(xiàn)在讓我們使用文件協(xié)議導(dǎo)入我們的項(xiàng)目到該SVN服務(wù)器中,找到我們要導(dǎo)入的項(xiàng)目,跟導(dǎo)入網(wǎng)絡(luò)上的SVN服務(wù)器一樣,右擊項(xiàng)目文件夾,SVN>Import。在Import界面中這樣填:

不出意外你會(huì)導(dǎo)入成功,那么現(xiàn)在我們需要去其它地方重新獲取這些東西了,換個(gè)地方,比如F盤根目錄,選擇SVNCheckOut,然后地址輸入剛才導(dǎo)入的地址:

友情提示:本文中關(guān)于《《測(cè)繪生產(chǎn)質(zhì)量管理規(guī)定》完全版》給出的范例僅供您參考拓展思維使用,《測(cè)繪生產(chǎn)質(zhì)量管理規(guī)定》完全版:該篇文章建議您自主創(chuàng)作。

來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。


《測(cè)繪生產(chǎn)質(zhì)量管理規(guī)定》完全版》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請(qǐng)保留原作者信息,謝謝!
鏈接地址:http://www.seogis.com/gongwen/641056.html