環(huán)境下Windows程序開發(fā)概述.ppt_第1頁
環(huán)境下Windows程序開發(fā)概述.ppt_第2頁
環(huán)境下Windows程序開發(fā)概述.ppt_第3頁
環(huán)境下Windows程序開發(fā)概述.ppt_第4頁
環(huán)境下Windows程序開發(fā)概述.ppt_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第12章 Visual C+環(huán)境下Windows程序開發(fā)概述,12.1 Visual C+可視化集成開發(fā)環(huán)境 12.2 創(chuàng)建、組織文件、工程和工作區(qū) 12.3 Windows編程基礎(chǔ) 12.4 Win32開發(fā) 12.5 MFC編程,12.1 Visual C+可視化集成開發(fā)環(huán)境,12.1.1 Visual C+簡(jiǎn)介 12.1.2 項(xiàng)目開發(fā)過程 12.1.3 集成開發(fā)環(huán)境Developer Studio 12.1.4 常用功能鍵及其意義,返回首頁,12.1.1 Visual C+簡(jiǎn)介,1Visual C+集成開發(fā)環(huán)境(IDE) 集成開發(fā)環(huán)境(IDE)是一個(gè)將程序編輯器、編譯器、調(diào)試工具和其他建立應(yīng)用程序的工具集成在一起的用于開發(fā)應(yīng)用程序的軟件系統(tǒng)。 2向?qū)В╓izard) 向?qū)且粋€(gè)通過一步步的幫助引導(dǎo)你工作的工具。Developer Studio中包含三個(gè)向?qū)?。 3MFC庫 庫(library)是可以重復(fù)使用的源代碼和目標(biāo)代碼的集合。MFC(Microsoft Fundamental Classes)是Visual C+開發(fā)環(huán)境所帶的類庫,在該類庫中提供了大量的類,可以幫助開發(fā)人員快速建立應(yīng)用程序。,返回本節(jié),12.1.2 項(xiàng)目開發(fā)過程,一個(gè)用C+開發(fā)項(xiàng)目的通用開發(fā)過程如圖12-1所示。,建立一個(gè)項(xiàng)目的第一步是利用編輯器建立程序代碼文件,包括頭文件、代碼文件、資源文件等。然后,啟動(dòng)編譯程序,編譯程序首先調(diào)用預(yù)處理程序處理程序中的預(yù)處理命令(如#include,#define等),經(jīng)過預(yù)處理程序處理的代碼將作為編譯程序的輸入。編譯對(duì)用戶程序進(jìn)行詞法和語法分析,建立目標(biāo)文件,文件中包括機(jī)器代碼、連接指令、外部引用以及從該源文件中產(chǎn)生的函數(shù)和數(shù)據(jù)名。此后,連接程序?qū)⑺械哪繕?biāo)代碼和用到的靜態(tài)連接庫的代碼連接起來,為所有的外部變量和函數(shù)找到其提供地點(diǎn),最后產(chǎn)生一個(gè)可執(zhí)行文件。一般有一個(gè)makefile文件來協(xié)調(diào)各個(gè)部分產(chǎn)生可執(zhí)行文件。,返回本節(jié),12.1.3 集成開發(fā)環(huán)境Developer Studio,1進(jìn)入Developer Studio 2Developer Studio的界面 3獲得幫助信息 4Visual C+的編輯器,圖12-2 Developer Studio界面,Developer Studio它具有以下特點(diǎn):,(1)自動(dòng)語法。 (2)自動(dòng)縮進(jìn)。 (3)參數(shù)幫助。 (4)集成的關(guān)鍵字幫助。 (5)拖放編輯。 (6)自動(dòng)錯(cuò)誤定位。,返回本節(jié),12.1.4 常用功能鍵及其意義,表12-1 常用功能鍵,返回本節(jié),12.2 創(chuàng)建、組織文件、工程和工作區(qū),12.2.1 新建工程 12.2.2 新建工作區(qū) 12.2.3 增加已有文件到工程中 12.2.4 打開工作區(qū) 12.2.5 設(shè)置當(dāng)前工程,返回首頁,12.2.1 新建工程,項(xiàng)目工作區(qū)是一個(gè)包含用戶的所有相關(guān)項(xiàng)目和配置的實(shí)體。工程定義為一個(gè)配置和一組文件,用以生成最終的程序或二進(jìn)制文件。一個(gè)項(xiàng)目工作區(qū)可以包含多個(gè)工程,這些工程既可以是同一類型的工程,也可以是不同類型的工程(如Visual C+和Visual J+工程)。工作區(qū)現(xiàn)在以.dsw為后綴名(以前為.mdp),項(xiàng)目文件現(xiàn)在以.dsp(以前為.mak)為后綴名。項(xiàng)目工作區(qū)如圖12-3所示。,圖12-3 項(xiàng)目工作區(qū),要新建一個(gè)工程,可以: (1)在File菜單上,單擊New,選擇Projects標(biāo)簽。 (2)從列表中選擇項(xiàng)目類型 (3)單擊Create New Workspace(新建工作區(qū))或Add to Current Workspace(加入到當(dāng)前工作區(qū)中)。 (4)要使新工程為子工程,可以選擇Dependency of 檢查框,并從列表中選擇一個(gè)工程。,(5)在Project Name框中,輸入新工程名,確保該名字必須與工作區(qū)中的別的工程名字不重名。 (6)在Location框中,指定工程存放的目錄:可以直接輸入路徑名,也可以單擊旁邊的Browse按鈕,瀏覽選擇一個(gè)路徑。 (7)單擊Platform框中的相應(yīng)檢查框,指定工程的開發(fā)平臺(tái),返回本節(jié),12.2.2 新建工作區(qū),要?jiǎng)?chuàng)建一個(gè)空的工作區(qū),可以: (1)在File菜單上,單擊New。 (2)在隨后彈出的對(duì)話框上,單擊Workspace標(biāo)簽。 (3)從類型列表中選擇Blank Workspace。 (4)在Workspace Name框中輸入名字,注意名字不能與它將要包含的工程同名。 (5)在Location框中指定存放工作區(qū)文件的目錄。 (6)單擊OK。,返回本節(jié),12.2.3 增加已有文件到工程中,(1)打開包含目標(biāo)工程的項(xiàng)目工作區(qū)文件。 (2)在Project菜單上,單擊Add to Project,然后單擊Files。 (3)在Insert Files into Project對(duì)話框中,瀏覽并定位要加入到工程中的文件名,然后選擇它們。 (4)從Insert Into中選擇工程名字,然后單擊OK。,返回本節(jié),12.2.4 打開工作區(qū),選擇File-Open Workspace,指定要打開的工作區(qū);或選擇File-Recent Workspaces ,從最近打開過的工作區(qū)列表中選擇一個(gè)。,返回本節(jié),12.2.5 設(shè)置當(dāng)前工程,選擇Project Setting,可以為當(dāng)前工程設(shè)置編譯、鏈接和C/C+等各種選項(xiàng)。,返回本節(jié),12.3 Windows編程基礎(chǔ),12.3.1 Windows API 12.3.2 Windows基礎(chǔ) 12.3.3 Windows消息映射和處理,返回首頁,12.3.1 Windows API,1Windows API的定義 Windows API是應(yīng)用程序編程接口(Application Programming Interface)的英文縮寫。它是大量函數(shù)加上數(shù)字常量、宏、結(jié)構(gòu)、類型以及其他相關(guān)項(xiàng)的集合。 2Windows API函數(shù)的分類 根據(jù)Windows API函數(shù)的功能,可以將其分為三類: (1)窗口管理函數(shù)。用以實(shí)現(xiàn)窗口的創(chuàng)建、移動(dòng)和修改功能。 (2)圖形設(shè)備(GUI)函數(shù)。用以實(shí)現(xiàn)與設(shè)備無關(guān)的圖形操作功能。 (3)系統(tǒng)服務(wù)函數(shù)。用以實(shí)現(xiàn)與操作系統(tǒng)有關(guān)的多種功能。,返回本節(jié),12.3.2 Windows基礎(chǔ),1事件 事件以如下三種方式產(chǎn)生: (1)通過輸入設(shè)備,如鍵盤和鼠標(biāo)。 (2)通過屏幕上的可視對(duì)象,如菜單、工具欄按鈕、滾動(dòng)條和對(duì)話框上的控件。 (3)來自Windows內(nèi)部。 2消息 但Windows捕獲一個(gè)事件后,它會(huì)編寫一條消息,并將相關(guān)信息放入一個(gè)數(shù)據(jù)結(jié)構(gòu)中,然后將包含此數(shù)據(jù)結(jié)構(gòu)的消息發(fā)送給需要此消息的程序。Windows消息是在Windows文件中用宏定義的常數(shù)。消息常數(shù)名通常以WM開頭,格式為WM_XXX。,3繪圖及設(shè)備環(huán)境 Windows具有圖形用戶界面(GUI),它包括菜單、工具欄、滾動(dòng)條和對(duì)話框中的按鈕等元素。 4對(duì)象與句柄 對(duì)設(shè)備環(huán)境的訪問是通過Windows返回的句柄進(jìn)行的。 5坐標(biāo)系 要為繪制和其他任務(wù)指定位置,需要坐標(biāo)系統(tǒng)。Windows提供了8種不同的坐標(biāo)系。,返回本節(jié),12.3.3 Windows消息映射和處理,開始執(zhí)行 在Windows中,管理消息的方式通常是這樣的:當(dāng)發(fā)生某個(gè)消息后,該消息進(jìn)入消息隊(duì)列,操作系統(tǒng)根據(jù)消息提供的信息決定由哪個(gè)應(yīng)用程序來處理,該應(yīng)用程序依照一定的方式查找應(yīng)用程序各個(gè)類的消息映射(一組宏,這些宏用來確定某個(gè)消息及相應(yīng)的處理程序的對(duì)應(yīng)關(guān)系),找到處理程序,然后由處理程序執(zhí)行。圖12-4是Windows程序和Windows消息的基本流程。,圖12-4 Windows程序和Windows消息處理的基本流程,Windows程序要處理的消息種類如下:,(1)Windows消息。該類消息以WM_開頭(WM_COMMAND例外),通常由窗口和視圖來處理。 (2)由控件和其他子窗口發(fā)送給父窗口的WM_COMMAND消息。這些消息中包括EN_CHANGE通知碼。 (3)來自于用戶界面對(duì)象的WM_COMMAND消息。這些用戶界面對(duì)象包括菜單、工具欄按鈕和快捷鍵。,返回本節(jié),12.4 Win32開發(fā),12.4.1 搶先式多任務(wù)和多線程 12.4.2 連續(xù)的地址空間和先進(jìn)的內(nèi)存管理 12.4.3 內(nèi)存映射文件 12.4.4 Win32s:Windows 3.x對(duì)Win32 API的支持 12.4.5 Win32編程基礎(chǔ),返回首頁,Win32可以應(yīng)用于特定的操作系統(tǒng),這種系統(tǒng)可以直接控制和處理PC硬件資源,而不必象Win16 API那樣依賴于MS-DOS系統(tǒng)服務(wù)。然而,Win32不是簡(jiǎn)單的由Win16從16位到32位的升級(jí),更重要的在于它支持: (1)高性能的搶先式多任務(wù)和多線程; (2)連續(xù)的32位地址空間和先進(jìn)的內(nèi)存管理; (3)對(duì)所有的可為進(jìn)程共享的對(duì)象,解決了它的安全性問題; (4)內(nèi)存映射文件;,12.4.1 搶先式多任務(wù)和多線程,Windows是一個(gè)多任務(wù)操作系統(tǒng),它提供了一次運(yùn)行多個(gè)應(yīng)用程序的能力。 Windows 3.x的多任務(wù)是一種由協(xié)作、軟件方式產(chǎn)生的有限的非搶先式的多任務(wù)。 Windows 95的多任務(wù)是一種搶先式多任務(wù)。在搶先式多任務(wù)操作系統(tǒng)中,系統(tǒng)在運(yùn)行的所有進(jìn)程之間對(duì)CPU時(shí)間進(jìn)行共享,從而保證每個(gè)進(jìn)程都能頻繁的訪問處理器,并且實(shí)現(xiàn)指令的連續(xù)執(zhí)行。這樣,每個(gè)Win32進(jìn)程都需要分配一個(gè)優(yōu)先級(jí),系統(tǒng)調(diào)度程序利用這種優(yōu)先級(jí)來決定哪一時(shí)刻 。,一個(gè)線程處于以下三種狀態(tài)之一:正在執(zhí)行,掛起,準(zhǔn)備運(yùn)行。在單處理器環(huán)境下(如Windows 95),同一時(shí)刻只能運(yùn)行一個(gè)線程。 為了在Win32中支持多線程進(jìn)程結(jié)構(gòu),Win32在原來Win16基礎(chǔ)上增加了: (1)對(duì)進(jìn)程以及線程創(chuàng)建、操縱的支持; (2)對(duì)一個(gè)進(jìn)程內(nèi)線程之間的同步和同步對(duì)象的支持; (3)一個(gè)統(tǒng)一的共享機(jī)制。,返回本節(jié),12.4.2 連續(xù)的地址空間和先進(jìn)的內(nèi)存管理,(1)申請(qǐng)一塊可移動(dòng)的內(nèi)存塊。 (2)鎖定該內(nèi)存塊。因?yàn)閃indows引入了虛擬內(nèi)存管理,可以把內(nèi)存塊移動(dòng)到硬盤交換文件中,所以在使用內(nèi)存塊之前,必須將它鎖定在真正的內(nèi)存RAM之中,也就是告訴操作系統(tǒng),現(xiàn)在這塊內(nèi)存暫時(shí)由應(yīng)用程序來管理。 (3)對(duì)該內(nèi)存塊進(jìn)行各種操作:如復(fù)制數(shù)據(jù)到內(nèi)存塊。 (4)解鎖內(nèi)存,應(yīng)用程序?qū)?duì)該內(nèi)存的控制交予Windows。,下面給出一個(gè)程序片段,來說明內(nèi)存管理函數(shù)的用法。 HGLOBAL memHandle;/內(nèi)存句柄 char far* lpMem;/假設(shè)長(zhǎng)度為memLen memHandle=GlobalAlloc(GHND,memLen+1);/申請(qǐng)內(nèi)存塊,此處未做返回結(jié)果檢查, /事實(shí)上,申請(qǐng)內(nèi)存有時(shí)會(huì)失敗 memcpy(lpMem,string,textLen);/拷貝數(shù)據(jù),其中string為一字符串變量,textLen /是這個(gè)字符串的長(zhǎng)度 GlobalUnlock(memHandle);/解鎖內(nèi)存 . GlobalFree(HGLOBAL) memHandle);/釋放內(nèi)存,返回本節(jié),12.4.3 內(nèi)存映射文件,內(nèi)存映射文件是由一個(gè)文件到一塊內(nèi)存的映射。Win32提供了允許應(yīng)用程序把文件映射到一個(gè)進(jìn)程的函數(shù)(CreateFileMapping)。這樣,文件內(nèi)的數(shù)據(jù)就可以用內(nèi)存讀/寫指令來訪問,而不是用ReadFile和WriteFile這樣的I/O系統(tǒng)函數(shù),從而提高了文件存取速度。 這種函數(shù)最適用于需要讀取文件并且對(duì)文件內(nèi)包含的信息做語法分析的應(yīng)用程序,如對(duì)輸入文件進(jìn)行語法分析的彩色語法編輯器,編譯器等。,返回本節(jié),12.4.4 Win32s:Windows 3.x對(duì)Win32 API的支持,Win32s與Win32是有區(qū)別的。Win32s的s的含義是指子集(subset)。 運(yùn)行在Windows 3.x/Win32s系統(tǒng)上的Win32程序支持32位指針和32位寄存器,只需要在系統(tǒng)調(diào)用之前稍作形式替換。 Win32s子集同Win32相比,不支持多線程,高級(jí)圖形API,異步文件I/O,Unicode和安全性;而且它是運(yùn)行于16位的Windows系統(tǒng)上的。但是同Win16相比,有它的優(yōu)越之處,目前在16位Windows程序開發(fā)方面有相當(dāng)?shù)臐摿Α?返回本節(jié),12.4.5 Win32編程基礎(chǔ),Win32數(shù)據(jù)類型 這里的數(shù)據(jù)類型指的是一些關(guān)鍵字,這些關(guān)鍵字定義了Win32中的函數(shù)中的有關(guān)參數(shù)和返回值的大小和意義。 這里需要解釋一下的是句柄。句柄是Windows編程的一個(gè)關(guān)鍵性的概念,編寫Windows應(yīng)用程序總是要和各種句柄打交道。所謂句柄,就是一個(gè)惟一的數(shù),用以標(biāo)識(shí)許多不同的對(duì)象類型,如窗口、菜單、內(nèi)存、畫筆、畫刷和電話線路等。 由于Windows是一個(gè)多任務(wù)操作系統(tǒng),它可以同時(shí)運(yùn)行多個(gè)程序或一個(gè)程序的多個(gè)副本。 Windows不僅使用句柄來管理實(shí)例,也用它來管理窗口、位圖、字體、元文件和圖標(biāo)等系統(tǒng)資源。,Win32常用的數(shù)據(jù)類型有:,返回本節(jié),12.5 MFC編程,12.5.1 MFC類庫概念和組成 12.5.2 MFC應(yīng)用程序框架 12.5.3 MFC的優(yōu)點(diǎn) 12.5.4 MFC對(duì)消息的管理,返回首頁,12.5.1 MFC類庫概念和組成,類庫是一個(gè)可以在應(yīng)用中使用的相互關(guān)聯(lián)的C+類的集合。 Microsoft提供了一個(gè)基礎(chǔ)類庫MFC,其中包含用來開發(fā)C+和C+ Windows應(yīng)用程序的一組類。基礎(chǔ)類庫的核心是以C+形式封裝了大部分的Windows API。類庫表示窗口、對(duì)話框、設(shè)備上下文、公共GDI對(duì)象如畫筆、調(diào)色板、控制框和其他標(biāo)準(zhǔn)的Windows部件。這些類提供了一個(gè)面向Windows中結(jié)構(gòu)的簡(jiǎn)單的C+成員函數(shù)的接口。,MFC可分為兩個(gè)主要部分:,基礎(chǔ)類; 宏和全程函數(shù)。,基礎(chǔ)類;,MFC中的類按功能來分可劃分為以下幾類: 基類、應(yīng)用程序框架類、應(yīng)用程序類、命令相關(guān)類、文檔/視圖類、線程類、可視對(duì)象類、窗口類、視圖類、對(duì)話框類、屬性表 、控制類、菜單類、設(shè)備描述表、繪畫對(duì)象類、通用類、文件、診斷、異常、收集、模板收集、其他支持類、OLE2類、OLE基類、OLE可視編輯包裝程序類、OLE 可視編輯服務(wù)器程序類、OLE數(shù)據(jù)傳輸類、OLE對(duì)話框類、其他OLE類和數(shù)據(jù)庫類。,宏和全程函數(shù)。,Microsoft基本宏和全程函數(shù)提供以下功能: 數(shù)據(jù)類型、運(yùn)行時(shí)刻對(duì)象類型服務(wù)、診斷服務(wù)、異常處理、CString格式化及信息框顯示、消息映射、應(yīng)用消息和管理、對(duì)象連接和嵌入(OLE)服務(wù)、標(biāo)準(zhǔn)命令和Windows IDs。 約定:全程函數(shù)以“Afx”為前綴,所有全程變量都是以“Afx”為前綴,宏不帶任何特別前綴,但是全部大寫。,例12-1:CObject類的定義。 / class CObject is the root of all compliant objects class CObject public: / Object model (types, destruction, allocation) virtual CRuntimeClass* GetRuntimeClass() const; virtual CObject(); / virtual destructors are necessary / Diagnostic allocations void* PASCAL operator new(size_t nSize); void* PASCAL operator new(size_t, void* p); void PASCAL operator delete(void* p); #if defined(_DEBUG) #endif,/ Disable the copy constructor and assignment by default so you will get / compiler errors instead of unexpected behaviour if you pass objects / by value or assign objects. protected: CObject(); private: CObject(const CObject / no implementation / Attributes,public: BOOL IsSerializable() const; BOOL IsKindOf(const CRuntimeClass* pClass) const; / Overridables virtual void Serialize(CArchive,CObject類為派生類提供了下述服務(wù):,(1)對(duì)象診斷。 (2)運(yùn)行時(shí)訪問類的信息。 (3)對(duì)象持續(xù)性。,下面舉個(gè)具體的例子來說明MFC所提供的應(yīng)用程序框架,程序如例12-2所示。 例12-2:應(yīng)用程序框架示例。 #include /derived an application class class CMinMFCApp:public CWinApp public: BOOL InitInstance(); ; /Derive the main window class class CMainWindow:public CFrameWnd ,public: CMainWindow(); DECLARE_MESSAGE_MAP() ; BEGIN_MESSAGE_MAP(CMainWindow,CFrameWnd) END_MESSAGE_MAP() /*CMinMFCApp Member Functions*/ BOOL CMinMFCApp:InitInstance() m_pMainWnd=new CMainWindow(); m_pMainWnd-ShowWindow(m_nCmdShow); m_pMainWnd-UpdateWindow(); return TRUE; ,/*CMainWindow member functions*/ CMainWindow:CMainWindow()/constructor Create(NULL, “Min MFC Application“, WS_OVERLAPPEDWINDOW, rectDefault, NULL, NULL); /*an instance of type CMinMFCApp*/ CMinMFCApp ThisApp;,返回本節(jié),12.5.2 MFC應(yīng)用程序框架,MFC AppWizard生成的應(yīng)用程序包含以下要素。 (1)WinMain()函數(shù)。Windows要求應(yīng)用程序必須有一個(gè)WinMain()函數(shù)。 (2)應(yīng)用程序類CMyFirstApp。該類的每一個(gè)對(duì)象代表一個(gè)應(yīng)用程序。 (3)應(yīng)用程序啟動(dòng)。 (4)成員函數(shù)CMyFirstApp:InitInstance()。 (5)成員函數(shù)CWinApp:Run()。 (6)CMainFrame類。 (7)文檔與視圖類。 (8)關(guān)閉應(yīng)用程序。,返回本節(jié),12.5.3 MFC的優(yōu)點(diǎn),Microsoft MFC具有以下不同于其他類庫的優(yōu)勢(shì): 完全支持Windows所有的函數(shù)、控件、消息、GDI基本圖形函數(shù)、菜單及對(duì)話框。 使用與傳統(tǒng)的Windows API同樣的命名規(guī)則,即匈牙利命名法。 進(jìn)行消息處理時(shí),不使用易產(chǎn)生錯(cuò)誤的switch/case語句,所有消息映射到類的成員函數(shù),這種直接消息到方法的映射對(duì)所有的消息都適用。,返回本節(jié),12.5.4 MFC對(duì)消息的管理,1MFC對(duì)消息的處理 2消息的發(fā)送,1MFC對(duì)消息的處理,MFC不使用用C語言編寫Windows程序時(shí)用的易產(chǎn)生錯(cuò)誤的switch/case語句,而采用一種消息映射機(jī)制來決定如何處理特定的消息。這種消息映射機(jī)制包括一組宏,用于標(biāo)識(shí)消息處理函數(shù)、映射類成員函數(shù)和對(duì)應(yīng)的消息等。,例12-3:消息處理函數(shù)例子。 class CMainFrame:CFrameWnd public: CMainFrame(); protected: /AFX_MSG(CMainFrame) afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnEditCopy(); afx_msg void OnClose(); /AFX_MSG DECLARE_MESSAGE_MAP() ;,例12-4:使用用戶自定義消息。 #include #define CM_APPLE (WM_USER+0) #define CM_ORANGE (WM_USER+1) class CMainFrame:CFrameWnd public: CMainFrame(); protected: afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnClose(); /handle user s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論