2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  附錄1 外文原文[8]</p><p>  The Windows Programming Model</p><p>  No matter which development tools you use, programming for Windows is different from old-style batch-oriented or transactio

2、n-oriented programming. To get started, you need to know some Windows fundamentals. As a frame of reference, we'll use the well-known MS-DOS programming model. Even if you don't currently program for plain MS-DOS

3、, you're probably familiar with it. </p><p>  Message Processing</p><p>  When you write an MS-DOS-based application in C, the only absolute requirement is a function named main. The operati

4、ng system calls main when the user runs the program, and from that point on, you can use any programming structure you want. If your program needs to get user keystrokes or otherwise use operating system services, it cal

5、ls an appropriate function, such as getchar, or perhaps uses a character-based windowing library. </p><p>  When the Windows operating system launches a program, it calls the program's WinMain function.

6、Somewhere your application must have WinMain, which performs some specific tasks. Its most important task is creating the application's main window, which must have its own code to process messages that Windows sends

7、 it. An essential difference between a program written for MS-DOS and a program written for Windows is that an MS-DOS-based program calls the operating system to get user input, but a Windo</p><p><b> 

8、 NOTE</b></p><p>  Many development environments for Windows, including Microsoft Visual C++ version 6.0 with the Microsoft Foundation Class (MFC) Library version 6.0, simplify programming by hiding th

9、e WinMain function and structuring the message-handling process. When you use the MFC library, you need not write a WinMain function but it is essential that you understand the link between the operating system and your

10、programs. </p><p>  Most messages in Windows are strictly defined and apply to all programs. For example, a WM_CREATE message is sent when a window is being created, a WM_LBUTTONDOWN message is sent when the

11、 user presses the left mouse button, a WM_CHAR message is sent when the user types a character, and a WM_CLOSE message is sent when the user closes a window. All messages have two 32-bit parameters that convey informatio

12、n such as cursor coordinates, key code, and so forth. Windows sends WM_COMMAND messages to th</p><p>  Don't worry yet about how these messages are connected to your code. That's the job of the appli

13、cation framework. Be aware, though, that the Windows message processing requirement imposes a lot of structure on your program. Don't try to force your Windows programs to look like your old MS-DOS programs. Study th

14、e examples in this book, and then be prepared to start fresh. </p><p>  The Windows Graphics Device Interface</p><p>  Many MS-DOS programs wrote directly to the video memory and the printer por

15、t. The disadvantage of this technique was the need to supply driver software for every video board and every printer model. Windows introduced a layer of abstraction called the Graphics Device Interface (GDI). Windows pr

16、ovides the video and printer drivers, so your program doesn't need to know the type of video board and printer attached to the system. Instead of addressing the hardware, your program calls GDI functions t</p>

17、<p>  Resource-Based Programming</p><p>  To do data-driven programming in MS-DOS, you must either code the data as initialization constants or provide separate data files for your program to read. Whe

18、n you program for Windows, you store data in a resource file using a number of established formats. The linker combines this binary resource file with the C++ compiler's output to generate an executable program. Reso

19、urce files can include bitmaps, icons, menu definitions, dialog box layouts, and strings. They can even include custom resour</p><p>  You use a text editor to edit a program, but you generally use wysiwyg (

20、what you see is what you get) tools to edit resources. If you're laying out a dialog box, for example, you select elements (buttons, list boxes, and so forth) from an array of icons called a control palette, and you

21、position and size the elements with the mouse. Microsoft Visual C++ 6.0 has graphics resource editors for all standard resource formats. </p><p>  Memory Management</p><p>  With each new versio

22、n of Windows, memory management gets easier. If you've heard horror stories about locking memory handles, thunks, and burgermasters, don't worry. That's all in the past. Today you simply allocate the memory y

23、ou need, and Windows takes care of the details. Chapter 10 describes current memory management techniques for Win32, including virtual memory and memory-mapped files. </p><p>  Dynamic Link Libraries</p&g

24、t;<p>  In the MS-DOS environment, all of a program's object modules are statically linked during the build process. Windows allows dynamic linking, which means that specially constructed libraries can be load

25、ed and linked at runtime. Multiple applications can share dynamic link libraries (DLLs), which saves memory and disk space. Dynamic linking increases program modularity because you can compile and test DLLs separately. &

26、lt;/p><p>  Designers originally created DLLs for use with the C language, and C++ has added some complications. The MFC developers succeeded in combining all the application framework classes into a few ready-

27、built DLLs. This means that you can statically or dynamically link the application framework classes into your application. In addition, you can create your own extension DLLs that build on the MFC DLLs. Chapter 22 inclu

28、des information about creating MFC extension DLLs and regular DLLs. </p><p>  The Win32 Application Programming Interface</p><p>  Early Windows programmers wrote applications in C for the Win16

29、 application programming interface (API). Today, if you want to write 32-bit applications, you must use the new Win32 API, either directly or indirectly. Most Win16 functions have Win32 equivalents, but many of the param

30、eters are different—16-bit parameters are often replaced with 32-bit parameters, for example. The Win32 API offers many new functions, including functions for disk I/O, which was formerly handled by MS-DOS calls. With<

31、;/p><p><b>  Bitmaps</b></p><p>  Without graphics images, Microsoft Windows-based applications would be pretty dull. Some applications depend on images for their usefulness, but any ap

32、plication can be spruced up with the addition of decorative clip art from a variety of sources. Windows bitmaps are arrays of bits mapped to display pixels. That might sound simple, but you have to learn a lot about bitm

33、aps before you can use them to create professional applications for Windows. </p><p>  This chapter starts with the "old" way of programming bitmaps—creating the device-dependent GDI bitmaps that w

34、ork with a memory device context. You need to know these techniques because many programmers are still using them and you'll also need to use them on occasion. </p><p>  Next you'll graduate to the m

35、odern way of programming bitmaps—creating device-independent bitmaps (DIBs). If you use DIBs, you'll have an easier time with colors and with the printer. In some cases you'll get better performance. The Win32 fu

36、nction CreateDIBSection gives you the benefits of DIBs combined with all the features of GDI bitmaps. </p><p>  Finally, you'll learn how to use the MFC CBitmapButton class to put bitmaps on pushbuttons.

37、 (Using CBitmapButton to put bitmaps on pushbuttons has nothing to do with DIBs, but it's a useful technique that would be difficult to master without an example.) </p><p>  GDI Bitmaps and Device-Indepe

38、ndentBitmaps</p><p>  There are two kinds of Windows bitmaps: GDI bitmaps and DIBs. GDI bitmap objects are represented by the Microsoft Foundation Class (MFC) Library version 6.0 CBitmap class. The GDI bitma

39、p object has an associated Windows data structure, maintained inside the Windows GDI module, that is device-dependent. Your program can get a copy of the bitmap data, but the bit arrangement depends on the display hardwa

40、re. GDI bitmaps can be freely transferred among programs on a single computer, but because of t</p><p><b>  NOTE</b></p><p>  In Win32, you're allowed to put a GDI bitmap handle

41、on the clipboard for transfer to another process, but behind the scenes Windows converts the device-dependent bitmap to a DIB and copies the DIB to shared memory. That's a good reason to consider using DIBs from the

42、start. </p><p>  DIBs offer many programming advantages over GDI bitmaps. Because a DIB carries its own color information, color palette management is easier. DIBs also make it easy to control gray shades wh

43、en printing. Any computer running Windows can process DIBs, which are usually stored in BMP disk files or as a resource in your program's EXE or DLL file. The wallpaper background on your monitor is read from a BMP f

44、ile when you start Windows. The primary storage format for Microsoft Paint is the BMP file, an</p><p>  Color Bitmaps and Monochrome Bitmaps</p><p>  Now might be a good time to reread the "

45、;Windows Color Mapping" section in Chapter 5. As you'll see in this chapter, Windows deals with color bitmaps a little differently from the way it deals with brush colors. </p><p>  Many color bitma

46、ps are 16-color. A standard VGA board has four contiguous color planes, with 1 corresponding bit from each plane combining to represent a pixel. The 4-bit color values are set when the bitmap is created. With a standard

47、VGA board, bitmap colors are limited to the standard 16 colors. Windows does not use dithered colors in bitmaps. </p><p>  A monochrome bitmap has only one plane. Each pixel is represented by a single bit th

48、at is either off (0) or on (1). The CDC::SetTextColor function sets the "off" display color, and SetBkColor sets the "on" color. You can specify these pure colors individually with the Windows RGB mac

49、ro. </p><p>  Using GDI Bitmaps</p><p>  A GDI bitmap is simply another GDI object, such as a pen or a font. You must somehow create a bitmap, and then you must select it into a device context.

50、When you're finished with the object, you must deselect it and delete it. You know the drill. </p><p>  There's a catch, though, because the "bitmap" of the display or printer device is eff

51、ectively the display surface or the printed page itself. Therefore, you can't select a bitmap into a display device context or a printer device context. You have to create a special memory device context for your bit

52、maps, using the CDC::CreateCompatibleDC function. You must then use the CDC member function StretchBlt or BitBlt to copy the bits from the memory device context to the "real" device context. These "b</p

53、><p>  The Effect of the Display Mapping Mode</p><p>  If the display mapping mode in the Red Blocks example is MM_TEXT, each bitmap pixel maps to a display pixel and the bitmap fits perfectly. If

54、the mapping mode is MM_LOENGLISH, the bitmap size is 0.54-by-0.96 inch, or 52-by-92 pixels for Windows 95, and the GDI must do some bit crunching to make the bitmap fit. Consequently, the bitmap might not look as good wi

55、th the MM_LOENGLISH mapping mode. Calling CDC::SetStretchBltMode with a parameter value of COLORONCOLOR will make shrunken bitmaps look ni</p><p><b>  附錄2 中文譯文</b></p><p>  Windows編程

56、模式</p><p>  無論使用哪一種開發(fā)工具,在Windows環(huán)境下編成都不同于舊式的面向批處理或者面向事務(wù)處理的編程。在開始前,需要了解一些Windows基本知識。作為參考。我們將使用眾所周知的MS-DOS程序,也可能熟悉它。</p><p><b>  消息處理</b></p><p>  當(dāng)用C語言編寫基于MS-DOS的應(yīng)用程序時,唯

57、一絕對需要的是一個名為main的函數(shù)。當(dāng)用戶運行程序時,操作系統(tǒng)調(diào)用main,并且,從這里開始,可以使用任何需要的編程結(jié)構(gòu)。如果程序需要獲得用戶鍵擊或者使用操作系統(tǒng)服務(wù),他便調(diào)用適當(dāng)?shù)暮瘮?shù),例如getchar,或者可能使用一個基于字符的窗口庫。</p><p>  當(dāng)Windows操作系統(tǒng)啟動一個程序時,他調(diào)用程序的WinMain函數(shù)。在一些地方,應(yīng)用程序必須有WinMain,它執(zhí)行一些特定的任務(wù)。它最重要的任務(wù)

58、是創(chuàng)建應(yīng)用程序的主窗口,它必須有自己的代碼來處理Windows發(fā)送給它的信息。在MS-DOS程序和Windows程序之間,一個基本區(qū)別是MS-DOS程序調(diào)用操作系統(tǒng)來獲取用戶輸入,但是,Windows程序通過來自操作的信息來處理用戶輸入。</p><p>  注意:許多Windows的開發(fā)環(huán)境,包括帶有MFC庫6.0版本的Microsoft Visual C++ 6.0,通過隱藏WinMain函數(shù)和結(jié)構(gòu)化消息處理

59、過程來簡化編成。當(dāng)使用MFC庫時,就不必編寫WinMain函數(shù),但是理解操作和程序之間的聯(lián)系是至關(guān)重要的。</p><p>  Windows中的大部分消息是嚴(yán)格定義的,而且適用于所有的程序。例如,當(dāng)創(chuàng)建一個窗口時,就會發(fā)送一個VM-CREAT消息;當(dāng)用戶按下鼠標(biāo)左鍵時,會發(fā)送WM-LBUTTONDOWN消息;還有,當(dāng)關(guān)閉窗口時,將發(fā)送一個WM-CLOSE消息。所有消息具有兩個32位參數(shù),他們傳送諸如光標(biāo)坐標(biāo)、鍵

60、代碼這樣的信息。Windows對適當(dāng)?shù)拇翱诎l(fā)送WM-COMMOND消息,以響應(yīng)用戶菜單選擇、對話按鈕的單擊等等。命令消息參數(shù)隨著窗口菜單的布局而有所不同。用戶可以定義自己的消息,這些消息的確使C++看起來有點像Smalltalk。</p><p>  但是,不要擔(dān)心這些消息怎樣與代碼相關(guān)。這是應(yīng)用程序框架的工作。應(yīng)當(dāng)清楚的是,Windows消息處理要求在程序上強加了許多結(jié)構(gòu)。研究本書的例程,然后準(zhǔn)備開始 。<

61、;/p><p>  Windows 圖形設(shè)備接口</p><p>  許多MS-DOS程序直接寫顯存和打印機接口。這種技術(shù)的不利之處是對每一種視頻板和每一種打印機型號,需要其支持的驅(qū)動程序軟件。Windows 引入了一個名為圖形設(shè)備接口(GDI)的抽象化外層。Windows提供視頻和打印驅(qū)動程序,所以,用戶不必知道有關(guān)系統(tǒng)的視頻卡和打印機的類型。程序不是尋址硬件,而是調(diào)用(GDI)函數(shù),這些函

62、數(shù)引用名為設(shè)備上下文(device context)的數(shù)據(jù)結(jié)構(gòu)。Windows把設(shè)備上下文結(jié)構(gòu)映射到物理設(shè)備,并且發(fā)出適當(dāng)?shù)妮斎?輸出指令。圖形設(shè)備接口幾乎與直接視頻訪問一樣快,并且它允許不同的Windows應(yīng)用程序來共享顯示。</p><p><b>  基于資源的編成</b></p><p>  要在MS-DOS環(huán)境下進行數(shù)據(jù)驅(qū)動編程,必須或者尾巴數(shù)據(jù)編碼成為初始

63、化常量或者提供獨立的數(shù)據(jù)文件讓程序來讀。進行Windows編程時,使用大量已經(jīng)確立的格式在資源文件中存儲數(shù)據(jù)。鏈接程序把二進制資源文件連接到C++編譯器的數(shù)出來產(chǎn)生一個可執(zhí)行文件。資源文件可以包括位圖、圖標(biāo)、菜單定義、對話框外觀和字符串。他們甚至可以包括自定義的定制資源格式。</p><p>  使用一個文本編譯器來編譯一個程序,但是一般使用外語siwyg(所見即所得)工具來編譯資源。例如,如果正在布置一個對話框

64、,從控制面板的圖標(biāo)序列來選定元素(按鈕、列表框等),并且用圖標(biāo)來確定元素的位置和大小。Microsoft Visual C++有全部標(biāo)準(zhǔn)資源格式的圖形資源編輯器。</p><p><b>  內(nèi)存管理</b></p><p>  使用Windows的每一個新的版本,內(nèi)存管理變得更加容易。如果所說過關(guān)于鎖定內(nèi)存句柄、形實轉(zhuǎn)換程序和伯格氏管理器(burgermaster)

65、的恐怖故事,不要擔(dān)心。這全部是過去的事情了。今天簡單地分配所需要的內(nèi)存,而Windows處理細(xì)節(jié)問題。第10章描述了Win32內(nèi)存管理技術(shù),包括虛擬內(nèi)存和內(nèi)存映射。</p><p><b>  動態(tài)鏈接庫</b></p><p>  在MS-DOS環(huán)境下,一個程序的所有對象模塊在建立過程中是靜態(tài)鏈接的。Windows允許動態(tài)鏈接,這意味著特別創(chuàng)建的庫可以在運行時加載和

66、鏈接。多個應(yīng)用程序可以共享動態(tài)鏈接庫(DLLs),它節(jié)省內(nèi)存和磁盤空間。動態(tài)鏈接增加了程序的模塊性,因為可以單獨編譯和測試動態(tài)鏈接庫。</p><p>  設(shè)計者最初使用C語言創(chuàng)建動態(tài)鏈接庫,并且C++增加了一些復(fù)雜性。MFC開發(fā)者成功地把所有應(yīng)用程序框架類與少量已經(jīng)建立好的動態(tài)鏈接庫結(jié)合。這意味著可以靜態(tài)或者動態(tài)把應(yīng)用程序框架類連接到應(yīng)用程序。另外,可以通過在MFC動態(tài)鏈接庫基礎(chǔ)上建立,創(chuàng)建自己的擴充動態(tài)鏈接庫

67、。第22章包括有關(guān)創(chuàng)建MFC擴充動態(tài)鏈接庫和常規(guī)動態(tài)鏈接庫。</p><p>  Win32 應(yīng)用程序編程接口</p><p>  早期Windows程序員使用C語言編寫Win16應(yīng)用程序編程接口的應(yīng)用程序。今天,如果需要編寫32位應(yīng)用程序,必須直接地或間接地使用新的Win32應(yīng)用程序編程接口。大多數(shù)Win16函數(shù)都有對應(yīng)的Win32函數(shù),但是許多參數(shù)都不一樣了。比如說,16位參數(shù)通常被3

68、2位參數(shù)所取代。Win32應(yīng)用程序編程接口提供了許多新的函數(shù),包括磁盤輸入/輸出函數(shù),它們以前是由MS-DOS調(diào)用處理的。使用Visual C++的16位版本,MFC程序員很大程度上不接觸這些應(yīng)用程序編程接口的區(qū)別,因為它們按照MFC標(biāo)準(zhǔn)編寫程序,這個標(biāo)準(zhǔn)是在Win16或者Win32環(huán)境下面設(shè)計的。</p><p><b>  位圖</b></p><p>  如果沒

69、有圖形圖像?;贛icrosoft Windows的應(yīng)用程序就會變得十分單調(diào)。一些應(yīng)用程序依靠圖像來實現(xiàn)他們的用途,但是任何應(yīng)用程序都可以用來各種來源的裝飾剪輯藝術(shù)而打扮起來。Windows位圖是映射到顯示像素的位數(shù)組。這聽起來可能很簡單,但是在可以使用為圖為Windows創(chuàng)建專業(yè)的應(yīng)用程序之前,必須學(xué)習(xí)許多關(guān)于位圖的知識。</p><p>  本章以位圖編程的“老”方法做為開始,創(chuàng)建使用于內(nèi)存設(shè)備相關(guān)的依靠設(shè)備

70、的GDI位圖。你需要了解這些技術(shù),原因是許多程序員仍然在使用它們。</p><p>  下一步將涉及到為位圖編成的現(xiàn)代方法:創(chuàng)建與設(shè)備無關(guān)的位圖(DIB)。如果使用DIB,那么就會更加輕松自如地處理顏色和打印機。在某些情況中,將獲得更好的性能,Win32函數(shù)CreatDIBSection提供了與GDI位圖的所有特征結(jié)合起來的DIB為圖所帶來的好處。</p><p>  最后,將學(xué)會如何使用

71、MFC CBitmapButton類在按鈕上放置位圖(使用CBitmapButton 在按鈕上放置位圖與DIB無關(guān),但是它是一項十分有用的技術(shù),不使用例子掌握它是很困難的)。</p><p>  GDI位圖和設(shè)備無關(guān)的位圖</p><p>  有兩種類型的Windows位圖:GDI位圖和DIB。GDI位圖對象是由Microsoft Foundation Class(MFC)Library

72、6.0版本的CBitmap類所代表的。GDI位圖對象有一個與之關(guān)聯(lián)的Windows數(shù)據(jù)結(jié)構(gòu),它在Windows GDI模塊內(nèi)進行維護,它是依賴于設(shè)備的。程序可以獲得位圖數(shù)據(jù)的副本,但是為排列則取決于顯示硬件。GDI位圖可以自由地在單一計算機上的程序之間進行傳輸,但是由于它們是依賴于設(shè)備的,所以通過磁盤或調(diào)制解調(diào)器來傳輸位圖是沒有意義的。</p><p>  注意:在Win32種,允許你在剪貼板上放置GDI位圖句柄

73、,以便把它傳輸給另一個進程,但在幕后,Windows將依賴于設(shè)備的位圖轉(zhuǎn)換為DIB,并將這個DIB復(fù)制到共享的內(nèi)存,這就是一開始就考慮使用DIB的一個很好理由。</p><p>  與GDI位圖相比,DIB提供了許多編程方面的優(yōu)點。因為DIB攜帶有自己色顏色信息,所以調(diào)色板管理起來更加容易一些。DIB還使得在打印時更加易于控制陰影。運行Windows的任何計算機都可以處理DIB,它通常是存儲在BMP磁盤文件之中,

74、或者作為資源存儲在程序的EXE和DLL文件中。監(jiān)視器上的墻紙背景是在你啟動Windows的時候從BMP文件中讀取的。Microsoft畫筆的主要存儲格式是BMP文件,Visual C++使用BMP文件用于工具欄按鈕和其他圖像。另外還可以提供其他圖形交換格式,例如TIFF、GIF和JPEG,但是只有DIB格式是直接由Win32 API支持的。</p><p><b>  彩色位圖和單色位圖</b&g

75、t;</p><p>  現(xiàn)在可能是重新閱讀第5章中“Windows顏色映射”一節(jié)的好時候了。正如你將在本章中所看到的那樣,Windows處理彩色位圖的方式與處理畫刷顏色略有不同。</p><p>  許多彩色位圖是16位色的。一個標(biāo)準(zhǔn)的VGA板具有四個連續(xù)的彩色平面。來自每個平面的一個對應(yīng)位,組合起來代表一個像素。當(dāng)創(chuàng)建位圖的時候,設(shè)置4位顏色值。對于標(biāo)準(zhǔn)的VGA板,位圖顏色被限制在標(biāo)準(zhǔn)

76、的16色。Windows不在位圖中使用抖動的顏色。</p><p>  單色位圖只有一個平面。每個像素用一個單一位來代表,該位或者是0或者是1。CDC::SetTextColor函數(shù)可以設(shè)置“off”顯示顏色,SetBkColor可以設(shè)置“on”顏色。你可以用Windows RGB宏來指定這些純色。</p><p><b>  使用GDI位圖</b></p>

77、;<p>  GDI位圖中只是另一個GDI對象,例如鋼筆或字體。你必須先創(chuàng)建一個位圖,然后選中它進入設(shè)備上下文。當(dāng)你完成對該對象的操作之后,必須解除對它的選中并刪除它。</p><p>  盡管如此,仍有一些問題,原因是顯示或打印機設(shè)備的“位圖”是有效的顯示表面或打印的頁面本身。因此,你不能選中一個位圖顯示設(shè)備上下文或打印機設(shè)備上下文。然后,你必須使用CDC成員函數(shù)StretchBit或BitBit

78、來從內(nèi)存設(shè)備上下文中向“真正”設(shè)備上下文中復(fù)制位。這些“位復(fù)制”函數(shù)一般在查看類的OnDraw函數(shù)中調(diào)用。當(dāng)然,你千萬不能忘記在完成之后清除內(nèi)存設(shè)備上下文。</p><p><b>  顯示映射模式的效果</b></p><p>  如果在Red Blocks例子中的顯示映射模式MW-TEXT,那么每個位圖像素映射為一個顯示像素,并且位圖匹配的很好。如果映射模式是MW

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論