1. 程式人生 > >說不出SDK和IDE區別?進來吧兄弟

說不出SDK和IDE區別?進來吧兄弟

突然想起來這個東西,為了以後吹牛不漏破綻,來吧一起。

IDE wikipedia定義:http://zh.wikipedia.org/wiki/%E9%9B%86%E6%88%90%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83

整合開發環境(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:http://baike.baidu.com/view/429424.htm

軟體開發工具包廣義上指輔助開發某一類軟體的相關文件、範例和工具的集合。

看看windows的SDK:http://msdn.microsoft.com/zh-cn/windows/desktop/bg162891.aspx

適用於 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 應用商店應用和桌面應用。

下面轉自:http://blog.csdn.net/fengyunjh6/article/details/14214513

簡單的說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++

下面轉自:http://hi.baidu.com/jzwspace/item/669fae75b061922cd7a89c39

C、C++、API、SDK、IDE、VC++、MSDN、MFC、OWL、VCL、ATL 、BCB

     C/C++都是一種程式語言,程式設計師用它來創作(我喜歡用創作這個詞,讓寫程式碼有一些藝術氣息...)各種各樣的程式,簡單如計算閏年,複雜到一個系統地實現。當然, 編寫標準C程式的時候,我們還經常會呼叫各種庫函式來輔助完成某些功能;初學者使用得最多的C庫函式就是printf了,這些庫函式是由你所使用的編譯器廠商提供的。在Windows平臺下,也有類似的函式可供呼叫;不同的是,這些函式是由Windows作業系統本身提供的。

    Windows作業系統提供了各種各樣的函式,以方便我們開發Windows應用程式。這些函式是Windows作業系統提供給應用程式程式設計的介面(Application Programming Interface),簡稱為API函式。我們在編寫Windows程式時所說的API函式,就是指系統提供的函式,所有主要的Windows函式都在Windows.h標頭檔案中進行了宣告。

       使用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函式、幫助文件、微軟提供的一些輔助開發工具。

  提示:API和SDK是一種廣泛使用的專業術語,並沒有專指某一種特定的API和SDK,例如,語音卡API、語音卡SDK、Java API、Java SDK等。自己公開的DLL函式也可以叫API!!!     一般來講,狹義上的API指 MS公開的函式。比如MSDN中介紹的函式。    廣義的API可以包括所有的函式,你自己的函式也算,未公開的也是。    指世界上一切函式。都可以叫API--pplication Programming Interface ;    SDK也不僅僅指MS的開發包,你自己的程式如果需要讓別人作2次開發,你就會提供 一些函式介面讓別人程式設計,你提供的材料也叫SDK.   

      有了語言(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可不支援類哦...

下面轉自:http://www.zhihu.com/question/20772069   陳良橋

你遇到了一個C++初學者大多會遇到或者搞混淆的概念問題

具體到你的疑惑 無論在Windows下還是Linux下,C++都只是語言,更具體一點,就是C++語言標準,這裡又可以細分為不同的版本,比如C++98,C++03以及最新的C++11(2011年在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了,就像新華字典一樣子,常備案頭。

---------------------  作者:young-hz  來源:CSDN  原文:https://blog.csdn.net/u012150179/article/details/23618575  版權宣告:本文為博主原創文章,轉載請附上博文連結!