【正文】
hat39。你在這里學(xué)到的知識(shí)也將幫助你理解 PowerPlant。你可以查看 Metrowerks 的幫助頁(yè)面來獲得相關(guān)信息,因?yàn)槲④浌緯?huì)為 CodeWarrior 的發(fā)行版本提供一些升級(jí)補(bǔ)丁。那么哪種庫(kù)應(yīng)該由多個(gè)應(yīng)用程序共享呢?比如操作系統(tǒng)中的每一個(gè)視窗就是使用共享的 DLL 得來的。 DLL 的優(yōu)點(diǎn)就是它能夠被共享。但是這做起來也有許多困難。實(shí)際上, CodeWarrior 有一個(gè)特定的存取路徑,叫做 system paths, 它指向 CodeWarrior 自帶的庫(kù)和頭文件存放的目錄。你只需將頭文件包括到你的源文件中,然后就可以象調(diào)用操作系統(tǒng)的函數(shù)一樣來調(diào)用庫(kù)函數(shù)了。這是我們?cè)诒菊n程中早已學(xué)到的知識(shí)。使用庫(kù)可以縮短你的開發(fā)時(shí)間并簡(jiǎn)化你的應(yīng)用程序。該目標(biāo)文件的源文件保持不變,但是需要預(yù)先設(shè)置置一些選項(xiàng)才能產(chǎn)生該程序的調(diào)試版本。 CodeWarrior 帶有一個(gè)集成的調(diào)試 器,可以讓你在 CodeWarrior 主窗口中打開一個(gè)窗口來進(jìn)行調(diào)試工作。這個(gè)問題可能只是一個(gè)輸入上的小錯(cuò)誤或者只是一個(gè)變量用錯(cuò)了,因此你很難發(fā)現(xiàn)它。這樣,該應(yīng)用程序仍然可以訪問到這些代碼,但是它就需要弄明白應(yīng)該到哪個(gè)文件以及如何找到 這些它需要使用的函數(shù)。 當(dāng)你編寫一個(gè)程序時(shí),常常將代碼寫成函數(shù)并存放在不同的文件中,然后將這些文件編譯得到單個(gè)的輸出文件。當(dāng)你的程序編譯完畢以后,接著就要使用連接器來把這些組成你的程序的各個(gè)文件連接起來。但是,計(jì)算機(jī)只能理解機(jī)器語(yǔ)言。編譯源程序就是計(jì)算機(jī)把你所寫(通常是用 C 或 C++編寫的 )的源代碼進(jìn)行分解、分析,然后轉(zhuǎn)化為機(jī)器語(yǔ)言。別忘了, CodeWarrior 可是一個(gè)可擴(kuò)展的集成開發(fā)環(huán)境。 大多數(shù)組成你的程序的文件都是原始的文本文件。該工程的設(shè)置和所有這些文件的指針都被存放在一個(gè)工程文件中。 一旦你掌握了 CodeWarior 和你所使用的操作系統(tǒng)的 編程接口時(shí),你可以編寫許多其它類型的程序。插件 (Plugins) 有點(diǎn)類似于 DLLs,插件也是可供其它軟件使用的小程序,但插件只能被特定的軟件使用。 在 Windows 中,控制面板程序是一些 (通常比較小的 )存放在控制面板目錄下的程序,可以在開始菜單的控制面板項(xiàng)中看到它們。如果你是一個(gè)初學(xué)者,你可以選擇編寫一個(gè)應(yīng)用程序 (比如一個(gè)可執(zhí)行程序 ),比如象微軟公司的文本編輯器 WordPad 這樣的應(yīng)用程序。 CodeWarrior 也可以支持 Java 開發(fā),但那是另一門課程的內(nèi)容。機(jī)械工程學(xué)院畢業(yè)設(shè)計(jì)(論文)外文資料翻譯 教 科 部: 專 業(yè): 姓 名: 學(xué) 號(hào): 外 文 出 處: Freescale Semiconductor (用外文寫) Codewarrior Development Studio 附 件: Introduction to CodeWarrior Development Tools 指導(dǎo)老師評(píng)語(yǔ) 簽名: 年 月 日 CodeWarrior 介紹 一、 CodeWarrior 能做些什么 ? 當(dāng)你知道自己能寫更好的程序時(shí),你一定不會(huì)再使用別人開發(fā)的應(yīng) 用程序。在 CodeWarrior 中使用 C/C++ 進(jìn)行編程。 你可以使用 CodeWarrior 來編寫你能夠想象得到的任何一種類型的程序。我們先來簡(jiǎn)單的討論一下這些類型的程序。通常它們都是沒有用戶界面的。實(shí)際上,有許多程序,包括 CodeWarrior,都使用這種插件結(jié)構(gòu)。 二、 什么是工程文件 為了使用 CodeWarrior 來創(chuàng)建一個(gè)應(yīng)用程序,你必須創(chuàng)建許多文件來構(gòu)成一個(gè)工程 (Project)。工程窗口依次顯示了這些關(guān)于你的程序和該程序所包含的文件的信息,并允許你只需輕松點(diǎn)擊就可以修改這個(gè)工程。在進(jìn)行數(shù)學(xué)運(yùn)算和 I/O 操作時(shí),你還要使用到一些庫(kù)文件,比如 Metrowerks 標(biāo)準(zhǔn)庫(kù) (Metrowerks Standard Library, MSL) 通常,你都是使用 C 或 C++ 來編寫源代碼,但通過給 CodewWarrior 的集成開發(fā)環(huán)境加裝相應(yīng)的插件 (plugin),你也可以在 CodeWarrior 中使用其它語(yǔ)言來進(jìn)行編程。 三、 理解編譯階段 源程序輸入完 之后的工作就是要編譯它。機(jī)器代碼相比 C 或 C++ 而言,要難理解多了。 如果你仔細(xì)地對(duì)照閱讀一下你的 C 或 C++ 源代碼和它編譯后的機(jī)器代碼,不難發(fā)現(xiàn)它們之間的關(guān)系。例如,連接器修改機(jī)器代碼以便使用 MSL 庫(kù)函數(shù)中的 printf() (該函數(shù)用來實(shí)現(xiàn)功能強(qiáng)大的控制臺(tái)輸入 /輸出 )來替換你在源文件中使用的 printf() 函數(shù)調(diào)用 。例如,假設(shè)你編寫一個(gè)應(yīng)用程序時(shí),其中包含了許多被程序的多個(gè)部分重復(fù)使用的代碼,你就可以將這些被重復(fù)使用的代碼編譯成為一個(gè)可共享的動(dòng)態(tài)鏈接庫(kù) (DLL)。不管是誰(shuí),在編程時(shí)都難免出現(xiàn)一些輸入或程序邏輯上的錯(cuò)誤,一旦出現(xiàn)這種問題,很可能你想破了頭也找不到錯(cuò)誤在哪。這時(shí),你就必須借助調(diào)試來解決問題。 通常進(jìn)行調(diào)試時(shí)總要生成源程序的一個(gè)調(diào)試目標(biāo)文件。在庫(kù)中提供的典型函數(shù)有:文件和屏幕的 I/O 函數(shù),內(nèi)存管理服務(wù), 3D 圖形顯示以及科學(xué)計(jì)算函數(shù)。你只需在一個(gè) C 或 C++ 源文件中寫入源代碼,然后編譯、連接并執(zhí)行它。頭文件是用于讓編譯器將你的程序中使用的函數(shù)與庫(kù)中的函數(shù)匹配起來的。需要注意的是, CodeWarrior 提供的某些特定的庫(kù),例如它的 MSL,就不是放在你的工程所在的目錄中。但是這種方法也 存在一個(gè)問題,就是如果在庫(kù)中存在一個(gè) bug 的話,用戶是沒辦法對(duì)之進(jìn)行修改的,只能從開發(fā)商那里取得一個(gè)修正后的版本。 DLL 文件的后綴名為 .dll。另外,如果一個(gè) DLL 包含了一個(gè) bug,然后被修正了,那么所有使用這個(gè) DLL 的程序都會(huì)被自動(dòng)更新,這樣就可以大大地節(jié)約你的開發(fā)時(shí)間。 MFC 可以在 Windows 版的 CodeWarrior 光盤中找到,但不一定是最新的版本。我們?cè)诒菊n程中并不打算討論 PowerPlant,但你應(yīng)知道,它與 MFC 在許多方面是類似的。s applications when you know you can make something better. But it can also be frustrating when you have a zillion lines of code and can39。s talk about these types for a minute. Under Windows, control panels are those (usually small) programs that are stored in your Control Panels directory and visible in the Control Panel section on the Start menu. The control panel itself is simply an interface to a systemwide feature, like setting the sound volume or the mouse39。s settings and pointers to other files are stored within a project file. These settings include piler and linker options, source files, libraries, and information about how they interact with o