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

转载 2011年10月09日 13:28:36
 

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可不支持类哦...

C/C++单元测试培训

快速掌握C/C++单元测试技术。课程抛弃了宽泛而不能落地的理论,直面企业项目的单元测试难题,深入浅出地讲授C/C++单元测试的问题、思路与方法。在此课程的基础上,学员只需要经过一些练习,就可以在实 际的开发中应用单元测试、TDD、ETDD。
  • 2015年08月20日 17:31

初学者必看:VC++、Win32 SDK、MFC的区别

这是一个初进行开发人员都可能遇到过的概念不清的问题,自己当年也同样有过误解,做技术我感觉一定要专,但是,不代表毫不关心相关的知识,至少概念层次上要知道,所以,这里还是再把这些内容纪录下来,好记性不如烂...
  • lichen18848950451
  • lichen18848950451
  • 2017-03-29 11:37:49
  • 2939

再谈Delphi vs VC++(非常精彩)

这是一篇非常精彩的文章,无意中在网上发现,比起原来《程序员》发表的开发工具大比拼更专业。可惜不知道作者是谁,如果作者看到或者有谁知道作者,请一定和我联系。(mail:jiangtao@csdn.net...
  • jiangtao
  • jiangtao
  • 2001-03-05 18:47:00
  • 20811

ATL CLR MFC Win32 常规 的区别--sdk与api的区别

ATL CLR MFCWin32 常规 的区别 win32,mfc,clr这些控制台应用程序有什么区别啊?     clr是.NET的程序 mfc就是把win32...
  • y601500359
  • y601500359
  • 2016-03-25 12:11:02
  • 857

C++ builder package(bcb bpl)创建和vcl调用

之前分享了创建DLL动态库的过程,
  • lushangqiushui
  • lushangqiushui
  • 2014-04-06 20:22:57
  • 1480

Win32平台各种主流开发框架(MFC、ATL、WTL、VCL等)

Win32平台各种主流开发框架(MFC、ATL、WTL、VCL等) 博客分类: C/C++/D MFC框架C#CC++  C++ 书籍推荐 http://community...
  • yeahhook
  • yeahhook
  • 2012-06-06 14:20:00
  • 707

深入VCL 理解BCB的消息机制 (一)

   
  • cker
  • cker
  • 2001-06-09 15:53:00
  • 3359

用C/C++开发基于VLC SDK的视频播放器 开发环境搭建

在windows系统如果开发万能播放器,一般都是基本DirectShow来开发,开发也很简单,但缺点也很多,一个文件格式是否能够播放完全取决于你是否安装了正确的解析器和解码器,即使现在有了万能解器安装...
  • xuplus
  • xuplus
  • 2014-06-24 10:29:53
  • 6113

VC++和C++builder互相调用动态链接库DLL(VC++编的)笔记

关于动态链接库的具体介绍参考本人转载博客:进程间通信详解 - 动态链接库实现 下文说说自己编写的动态链接库,主要作用是实现用VC++编写的A程序和用C++builder编写的B程序之间的通信,其中涉...
  • daofengdeba
  • daofengdeba
  • 2012-11-25 11:40:18
  • 5125

在VC++程序中接收COM事件

在VC++程序中接收COM事件关键字:连接点 COM 事件 IDispEventImpl 接收事件是COM客户端中非常重要的功能。但是除了在MFC中能够接收控件[1]所发出的事件以外,VC++不能自动...
  • nelsonc
  • nelsonc
  • 2003-06-03 07:48:00
  • 2536
收藏助手
不良信息举报
您举报文章:C、C++、API、SDK、IDE、VC++、MSDN、MFC、OWL、VCL、ATL 、BCB
举报原因:
原因补充:

(最多只允许输入30个字)