说不出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,有些则不包含,如EclipseSharpDevelop等,这些IDE是通过调用第三方编译器来实现代码的编译工作的。有时IDE还会包含版本控制系统和一些可以设计图形用户界面的工具。许多支持面向对象的现代化IDE还包括了类别浏览器、物件检视器、物件结构图。虽然目前有一些IDE支持多种编程语言(例如EclipseNetBeansMicrosoft 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了,就像新华字典一样子,常备案头。


  • 13
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值