突然想起來這個東西,為了以後吹牛不漏破綻,來吧一起。
ide wikipedia定義:
整合開發環境(integrated development environment,簡稱ide,也稱為integration design environment、integration debugging environment)是一種輔助程式開發人員開發軟體的應用軟體。
ide通常包括程式語言編輯器、自動建立工具、通常還包括偵錯程式。有些ide包含編譯器/直譯器,如微軟的microsoft visual studio,有些則不包含,如eclipse、sharpdevelop等,這些ide是通過呼叫第三方編譯器來實現**的編譯工作的。有時ide還會包含版本控制系統和一些可以設計圖形使用者介面的工具。許多支援物件導向的現代化ide還包括了類別瀏覽器、物件檢視器、物件結構圖。雖然目前有一些ide支援多種程式語言(例如eclipse、netbeans、microsoft visual studio),但是一般而言,ide主要還是針對特定的程式語言而量身打造(例如visual basic)。
sdk:
軟體開發工具包廣義上指輔助開發某一類軟體的相關文件、範例和工具的集合。
看看windows的sdk:
適用於 windows 8.1 的 windows 軟體開發工具包 (sdk) 包含標頭、庫和工具,可用於建立在 windows 作業系統上執行的應用。你可以將 windows sdk 與所選開發環境結合使用,編寫適用於 windows 8.1 以及 windows 8、windows 7、windows vista、windows server 2012、windows server 2008 r2 和 windows server 2008 的 windows 應用商店應用和桌面應用。
下面**:
簡單的說sdk更底層,ide是sdk+圖形介面開發環境。
先來說windows sdk的概念:
微軟每推出乙個重要的windows版本,一般都會同時推出乙個sdk(software development kit)。sdk包含了開發該windows版本所需的windows函式和常數定義、api函式說明文件、相關工具和示例。sdk一般使用c語言,但不包括編譯器。高版本vc++包括了sdk所有的標頭檔案、幫助、示例和工具,不需要再安裝sdk,低版本如vc++5.0則需要安裝sdk
從上面這段話看出,windows sdk就是windows這個os的api+文件+other。sdk不包括編譯器。
那linux的sdk就是linux api + other, 編譯器是gcc或者g++
下面**:
c、c++、api、sdk、ide、vc++、msdn、mfc、owl、vcl、atl 、bcb
c/c++都是一種程式語言,程式設計師用它來創作(我喜歡用創作這個詞,讓寫**有一些藝術氣息...)各種各樣的程式,簡單如計算閏年,複雜到乙個系統地實現。當然, 編寫標準c程式的時候,我們還經常會呼叫各種庫函式來輔助完成某些功能;初學者使用得最多的c庫函式就是printf了,這些庫函式是由你所使用的編譯器廠商提供的。在windows平台下,也有類似的函式可供呼叫;不同的是,這些函式是由windows作業系統本身提供的。
使用windows api建立的能在windows上執行的程式統稱為windows程式。
這些api隨著系統的更新公升級,他們也是在不斷更新和擴充,但是,其行為基本保持不變以保證不同平台對應用程式的相容性,面對越來越多地api,我們怎麼獲取可靠的幫助呢?最大的幫助就是msdn,你可以把msdn理解為微軟向開發人員提供的一套幫助系統,其中包含大量的開發文件、技術文章和示例**。msdn包含的資訊非常全面,程式設計師不但可以利用msdn來輔助開發,還可以利用msdn來進行學習,從而提高自己。對於初學者來說,學會使用msdn並從中汲取知識,是必須要掌握的技能。
我們還經常聽人說win32 sdk開發,那麼什麼是sdk呢。sdk的全稱是software development kit,中文譯為軟體開發包。假如現在我們要開發呼叫中心,在購買語音卡的同時,廠商就會提供語音卡的sdk開發包,以方便我們對語音卡的程式設計操作。這個開發包通常都會包含語音卡的api函式庫、幫助文件、使用手冊、輔助工具等資源。也就是說,sdk實際上就是開發所需資源的乙個集合,再具體點說,你知道createporcess這個api,那怎麼使用,你需要有標頭檔案,當然還需要提供功能的系統dll庫的引出庫lib,這些都在sdk中。現在讀者應該明白win32 sdk的含義了吧,即windows 32位平台下的軟體開發包,包括了api函式、幫助文件、微軟提供的一些輔助開發工具。
有了語言(c\c++),有了開發資源(sdk)、有了幫助文件(msdn),ok,我們可以編寫windows程式了,等等、工具有沒有更好的工具呢,人類之所以進步就在於會使用工具,所以,為了更加高效的開發程式,一些整合開發環境誕生了,其中, visual c++就是乙個支援c\c++語言開發的整合開發環境(ide)。記住,vc++不是什麼新的程式語言,他只是 ide,只是乙個程式設計的輔助工具,具體來說,visual c++包含了源程式編輯器、c\c++編譯器、mfc和atl等,其中、mfc和atl可以簡單的理解為再次封裝的windows的系統介面,原生介面就是api 。
其中,mfc,微軟基礎類(microsoft foundation classes),實際上是微軟提供的,用於在c++環境下編寫應用程式的乙個框架和引擎,也可以說,mfc是win api與c++的結合後的再一次封裝。
owl(borland公司,其已經逐漸淡處)、vcl(borland公司--現在已和inprise合併專--為delphi設計的,其是由owl演變的)和mfc(ms專為vc++設計的)是不同公司提供的三大類庫,更確切點說,他們都是應用框架。
delphi:也是一種整合開發環境,不過他支援的語言是源至於pascal的object pascal.他使用的框架就是vcl.
bcb:就是inprise公司使用了delphi的ide和vcl,再配上c++語言推出的開發環境c++builder,很多人很念舊,所以冠以borland c++ builder之名,簡稱為bcb。
atl是全新的com 開發工具 :---- atl 是activex template library 的縮寫,它是一套c++模板庫。 使用atl 能 夠 快速地開發出高效、簡潔的**, 同時對com 元件的開發提供最大限度 的**自動生成以及視覺化支 持。從microsoft visual c++ 5.0 版本開始,microsoft 把atl 整合 到visual c++ 開發環境中。
sdk + c 完全可以進行所有的windows程式開發,當然,你還可以採用mfc + c++,當然,你要用sdk + c++ 也是你的自由,但是mfc + c可是impossible的事情,因為,mfc就是c++寫的,c可不支援類哦...
下面**: 陳良橋
你遇到了乙個c++初學者大多會遇到或者搞混淆的概念問題
具體到你的疑惑
無論在windows下還是linux下,c++都只是語言,更具體一點,就是c++語言標準,這裡又可以細分為不同的版本,比如c++98,c++03以及最新的c++11(2023年在iso通過,參考c++11 faq中文版)
c++只是一套語言規則標準,我們要利用它來程式設計,還需要具體的實現。而visual c++(其中的編譯器其實是cl.exe), gcc, clang, intel c++, ibm xlc++等等,都是c++標準的具體實現,也就是你所說的編譯器。
而mfc,則是類庫,也就是為了某一特定目的而事先設計好的類的集合。比如,mfc,qt,wtl等等是為了應用程式介面設計,boost是為了提高c++的開發效率而事先實現的模板庫,opengl是為了實現3d渲染而提供的函式庫。如果用蓋房子來做乙個比喻的話,c++是最基礎的沙子和水泥,而mfc則是預製板,是事先做好的半成品,從而使得我們可以利用這些預製件更便捷高效地蓋好房子(應用程式)
以上這些,是我們蓋房子需要的材料,而ide則是我們用c++寫程式所需要的一套工具(**編輯器,偵錯程式等,就像蓋房子需要的起重機,攪拌機,運輸機)。而visual c++,eclipse等等,都只是這一套工具的牌子(就像你的起重機是三一重工的,還是徐工的)。
這樣的解釋,這些概念清楚了嗎?
不僅僅是寫gui用到的函式,其他任何函式庫(opengl,boost等)的使用,都需要查閱其文件,才能知道其中各個函式的使用方法,才能正確有效地使用。這就不僅僅是msdn了,你使用什麼庫,就在網上找相關的文件就可以了。關於c++,我最常用的就是reference - c++ reference了,就像新華字典一樣子,常備案頭。
SDK和MFC的區別
sdk 就是software development kit 軟體開發包 mfc 就是microsoft foundation classes 微軟函式類庫 mfc是對api函式的封裝,也算是vc裡的sdk 用vc編寫windows程式有兩種 1.windwos c方式 sdk 2.c 方式 即對s...
sdk 和 api 的區別??????
定義 1 api 2 sdk sdk software development kit 中文是 軟體開發工具組 由一系列的工具組合在一起,編輯器裡敲 的時候它會自動補全 自動錯誤檢查等 區別 sdk 包含了使用 api 的必需資料。sdk是開發工具提供商提供的,而api是統一定的系統 作業系統或專用...
API和SDK的區別
隨著軟體規模的日益龐大,常常需要把複雜的系統劃分成小的組成部分,程式設計介面的設計十分重要,程式設計的實踐中,程式設計介面的設計首先要使軟體系統的職責得到合理劃分,良好的介面設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系統的維護性和擴充套件性。api是介...