API:Application Programming Interface -- 应用程序编程接口

SDK:Software Development Kit -- 软件开发工具包

MFC:Microsoft Foundations Classes -- 微软基础类

API:应用程序编程接口

应用程序接口为:“计算机操作系统(Operating system)或程序库提供给应用程序调用使用的代码”。其主要目的是让应用程序开发人员得以调用一组例程功能,而无须考虑其底层的源代码为何、或理解其内部工作机制的细节。API本身是抽象的,它仅定义了一个接口,而不涉入应用程序如何实现的细节。

举个例子:当我们使用 C 语言编程,调用 printf("Hello World\n") 这个 API 函数向显示器输出字符串"HelloWorld"的时候,我们并不需要关注显示器是如何绘制这个字符串的,我们只需要知道调用 C 语言提供的 printf() 这个 API 函数即可。

Windows 程序设计有两种方式: C语言方式(SDK)和 C++方式(对SDK函数进行包装,如VC中的MFC、BCB中的VCL)。

SDK:软件开发工具包

一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合。

Windows SDK 编程简单的说就是使用 C 语言调用 Windows 提供的 API 函数的编程。


MFC:微软基础类

MFC 是一个微软公司提供的类库(class libraries),以 C++ 类的形式封装了 Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量 Windows 句柄封装类和很多 Windows 的内建控件和组件的封装类。

简而言之,SDK 编程就是直接利用 Windows 提供的 API 函数进行编程,而 MFC 是利用类的概念对 API 函数进行封装,结合面向对象的继承、多态组成一个个类,共有一百多个类组成。

为什么不推荐初学者学习 MFC?

微软千辛万苦封装了个 MFC,但很多资深程序员反而警告初学者不要去学习 MFC,这是为什么呢?
对于程序员来说,操作系统的功能完全是由 API 来定义。也就是说,操作系统若能够完成的事情,都会提供相应的 API 供调用。因此,搞熟这些 API 对你理解 Windows 的运行机制非常有帮助。今后你无论使用什么来编写 Windows 程序,都是水到渠成。

API 函数本身就是进行了一层封装(例如上边我们提到的,我们根本不需要去理解如何在屏幕上显示字符串的原理),而 MFC 是再对 API 进行封装。因此初学者如果直接学习 MFC 编程,就很难理解 Windows 的运行原理,而不理解原理的学习就会显得亦步亦趋。

反过来,如果当你首先掌握了这些 API 函数以及 Windows 的运行机制,你再来学习 MFC,学习就会变得事半功倍了!

计算机编程中涉及的一些专业词语相关推荐

  1. 计算机算法对程序设计的作用,计算机编程中数学算法的优化策略

    李钰 摘要:在计算机编程中,合理地运用数学算法所拥有的优势不但可以完好地针对所拥有的问题进行总结分类归纳,还可以将其归纳作为基础从而进行针对性的统一计算,并且能够将非常复杂的问题进行整体的简化并且将其 ...

  2. 计算机无符号是啥,计算机编程中的无符号是什么

    在计算机编程中,术语"unsigned"(无符号)表示只能保存正数的变量.计算机代码中的"signed"(有符号)表示变量可以包含负值和正值.该属性可应用于大多 ...

  3. 2020.2.15 要求:总结归纳计算机编程中的各种数据类型,其表示形式和计算方法。重点关注类型转换、数值溢出和移位等操作。

    2020.2.15 要求:总结归纳计算机编程中的各种数据类型,其表示形式和计算方法.重点关注类型转换.数值溢出和移位等操作. [编程数据类型]C语言 一.基本类型 1.整型 1).基本整型 int u ...

  4. 计算机编程里面counter是什么意思,step在计算机编程中的意思是什么

    step在计算机编程中的意思是"步长",一般出现在计算机算法循化语句中,语法如"For counter = start To end [Step step]", ...

  5. 数据压缩(一)——计算机编程中的各种数据类型,以C为例

    任务:总结归纳计算机编程中的各种数据类型,其表示形式和计算方法.重点关注类型转换.数值溢出和移位等操作. 一.C数据类型 整型(integer) 表示方法 int a; //整型(占用4个字节),最一 ...

  6. 让杨超越小姐姐告诉你,计算机编程中的透明性是什么意思?

    计算机编程中的透明性是什么意思? 生活中的透明: 生活案例1.  这位美女穿的这件衣服挺透明的,可以隐约看见她的咪咪!这里的透明,指的是我们的眼睛可以穿透美女的衣服,看到美女衣服里面的敏感部位,大家都 ...

  7. 对面的00后萌新看过来:浅析计算机编程在高等职业GIS专业中的重要性

    文章目录 什么是传说中的GIS? GIS必修哪些课程? 学GIS到底何去何从? 什么是计算机编程? 编程在GIS中的地位如何? 高等职业GIS如何教学? 专科生怎样学好GIS? 什么是传说中的GIS? ...

  8. 计算机学算法的意义,浅析算法在计算机编程中的重要作用

    摘 要:算法是一种解决程序编写方案的准确并且完整的描述,即为解决一系列问题的清晰指令.算法的运算种类极为繁多,其中最为基本的有赋值运算.算术运算.逻辑运算和关系运算等,另外稍为复杂的还有算术表达式和逻 ...

  9. 计算机编程术语. dsp,TI DSP——专业名词解释

    差分信号是一对大小相等而极性相反的对称信号: 差分传输区别一传统的一根信号线一根地线的传输做法,差分传输在这两根线上都传输信号,这两个信号振幅相等,相位相反. 差分传输的信号能够有很强的抗外部干扰的能 ...

最新文章

  1. phpstudy2014 php7.0,phpstudy下载_phpStudy下载2014 官方版_php环境集成包 1.0_零度软件园...
  2. 神操作!一行Python代码搞定一款游戏?给力!
  3. asp前端日历_asp显示日历效果
  4. 单片机课程设计数字心率计_如何选购合适的PH计
  5. .net平台的MongoDB使用
  6. 电气自动化c语言实践操作论文,项目实践论文,关于独立学院电气工程其自动化专业基于CDIO的实践模式相关参考文献资料-免费论文范文...
  7. java: 无法将类 com.duo_tai.Cow中的构造器 Cow应用到给定类型;
  8. Greenplum 数据库一体机硬件配置正式开源
  9. Memcache UDP 反射放大超大规模的DDoS攻击如何防御?
  10. 微信js支付换服务器,微信内网页支付(微信 JSAPI 支付)的一点经验
  11. Android——距离传感器(PROXIMITY)的应用
  12. 如何制作出漂亮精致的思维导图?MindNow来帮你
  13. wmf文件与emf文件
  14. #define ok 1 是什么意思 数据结构书上的
  15. scratch(图形化编程工具)3.28.0版本更新了!
  16. ConfigUtility
  17. iOS仿微信聊天输入框、评论输入框
  18. 就该这么学llinux 第五章用户身份与文件权限
  19. 前端 web端常见的攻击有那几种类型 网站瘫痪 崩溃的原因
  20. 开源多媒体项目汇总与分析

热门文章

  1. 电压抬升op电路分析
  2. mtk驱动camera的调试总结1--原理
  3. 红米note2移动4g在哪里显示无服务器,红米Note2支持4G吗?红米Note2支持4G网络吗?...
  4. java input是关键字吗_Java中对象的串行化(Serialization)和transient关键字 - 金色阳光...
  5. 陪儿子玩游戏之×××守卫军
  6. Python3 (爬虫实践)[BeautifulSoup + Selenium] 爬取B站用户名和评论,并且按照条件进行抽奖
  7. 如何将连续系统状态空间方程离散化
  8. windows7系统10个常用技巧概述
  9. 发现DELL笔记本一个很弱智的问题
  10. flutter 自定义微信/支付宝密码输入框