【原】API、Win32 SDK、Win32项目、MFC、Windows窗体应用程序的区别

首先来看一下每一个术语的定义:

API:Application Programming Interface。Windows操作系统提供给应用程序编程的接口, 简称 为API函数。

Win32 SDK:SDK(Software Development Kit)中文是软件开发包。则Win32 SDK是Windows 32位平台下的软件开发包,包括了API函数、帮助文档、微软 提供的一些辅助开发工具。

Win32项目:Microsoft Windows操作系统32位环境下由C/C++语言调用API函数编写 的项目。

MFC:Microsoft Foundation Classes。微软基础类。用于在C++环境下编写应用程序的一个 框架和引擎。

Windows窗体应用程序:用户计算机上运行的客户端应用程序,可显示信息、请 求用户输入以及通过网络与远程计算机进行通信。在开发大型应用程序时,可能需要研 究 .NET Framework 和它所提供的类

接下来解释一下具体的区别:

1、Win32项目和MFC的区别:

win32程序是利用编程语言直接调用windows api编写的程序,可以在任何装有正确windows的机器上运行,程序员发挥的空间也最大,能实现在该操作系统中可以编程实现的任何功能。

MFC是对大部分API的封装,调用一个MFC函数或new一个MFC的类相当于调用了很多API函数了,这样就节省了大量的时间了。由于封装,不可能完全实现win32所有功能。使用方便,但是隐藏了细节。MFC是面向对象的思想,主要是用来做界面。

两者相比,win32更本质,MFC更抽像。从软件工程来看,MFC更符合要求,更人性化。我们在正常使用中,优先使用MFC

2、Win32项目和Windows窗体应用程序的区别:

win32应用程序是指可以在32位或以上Windows系统中运行的程序,概念比windows窗体大,严格说来,窗体程序也是win32应用程序。

Windows窗体应用程序必须在.net环境中应用,就是说你编译好的软件在没有.net framework的机器上是不能运行的,而且功能的实现也要受framework的限制,不能随心所欲。

3、MFC和Windows窗体应用程序的区别:

MFC和Windows窗体应用程序的结果完全一样,都是用面向对象的思想做界面。但是由于MFC可以开发出Windows窗体应用程序,所以Windows窗体应用程序使用更方便,但是灵活性不如MFC

4、不要使用MFC的场合:

  • 三维游戏等。MFC没有包含相关的库
  • 特殊程序。如病毒等后台工具。需要的是效率而不是界面,而且要求体积小。

API、Win32 SDK、Win32项目、MFC、Windows窗体应用程序的区别的更多相关文章

  1. Windows窗体应用程序(非Console)使用libuv实现简单的异步WEB服务器

    libuv是一个很强大的异步处理框架(严格意义上不能叫框架,其实就是一组异步函数库,当然框架这东西有各种各样的定义和理解_^...),最初的的目的是用于NODEJS的异步处理,不过因为它是一个独立的项 ...

  2. C#开发Windows窗体应用程序的步骤

    使用C#开发应用程序时,一般包括创建项目.界面设计.设置属性.编写程序代码.保存项目.程序运行等6个步骤. 1.创建项目 在Visual Studio2017开发环境中选择“文件”→“新建”→“项目” ...

  3. 第一章 C#入门(Windows窗体应用程序)(二)

    C#窗体应用程序(二) [案例]设计登录界面,效果如下: [案例实现步骤] 1.新建项目(Windows控制台应用程序 文件→新建→项目:选择“项目类型”为Visual C#,“模板”为Windows ...

  4. 第一章 C#入门 (Windows窗体应用程序)(一)

    我的第一个窗体应用程序(一) [案例说明]  在文本框中显示一行文字“Hello C#!”,单击[显示]按钮后在文本框中显示文字:单击[清除]按钮后清除文本框中的内容. [案例实现步骤] 1.新建项目 ...

  5. 第一章 C#入门 (Windows窗体应用程序)(三)

    [案例] 编写一个Windows窗体应用程序,窗体上有一个文本框和两个按钮([显示]和[清除]按钮). 单击[显示]时,文本框的背景变为蓝色并且居中显示“努力学习C#”: 单击[清除]按钮,文本框的背 ...

  6. Windows窗体应用程序常用的几个类的属性、方法以及事件

    System.Diagnostics.Process 属性 public bool EnableRaisingEvents { get; set; }//获取或设置在进程终止时是否应激发 Exited ...

  7. C#windows窗体应用程序如何自适应大小

    用C#的windows窗体应用程序做界面十分轻松,但是系统默认是没有让控件跟随窗体的大小改变而已改变的.所以需要我们手动去设置让窗体控件随着窗体的大小改变而改变.所以我们只需要将控件选择 然后把Anc ...

  8. 使用WIN32汇编语言实现一个基本windows窗体的过程分析

    一个常规的windows窗体一般都是一些一样的构造.你假设想要更改一些个性化的设置,你能够在这个一般的模板伤添砖加瓦.构造自己比較喜欢的类型.下边就分析一下一般的windows窗体的一般模板. 一. ...

  9. C#Windows窗体应用程序MyKTV项目

    后台管理其中有一个添加歌手信息和歌曲信息的窗体要点击按钮并上传文件,因为对那些文件流什么的不懂,所以用了老师教的最简单的判断方法,但此方法只是按后缀名判断文件的样式,如果后缀名乱改就不行了! 此时需要 ...

随机推荐

  1. Spark 3.0 新特性 之 自适应查询与分区动态裁剪

    Spark憋了一年半的大招后,发布了3.0版本,新特性主要与Spark SQL和Python相关.这也恰恰说明了大数据方向的两大核心:BI与AI.下面是本次发布的主要特性,包括性能.API.生态升级. ...

  2. Linux内存参数

    用free -m查看的结果:# free -m         total    used    free     shared buffers     cachedMem:           50 ...

  3. SQL Server跟踪工具Profiler的使用

    一.什么是SQL Profiler SQL Server Profiler 是一个功能丰富的界面,用于创建和管理跟踪并分析和重播跟踪结果. 事件保存在一个跟踪文件中,稍后试图诊断问题时,可以对该文件进 ...

  4. Git 提交、删除、切换命令

    1.将本地代码提交到远程仓库 [初始将文件修改上传到远程仓库] 初始化: git init 添加到暂存区: git  add . 提交到仓库: git commit -m 'first commit' ...

  5. 移动端rem字体适配JS

    // 『REM』手机屏幕适配,兼容更改过默认字体大小的安卓用户 function adapt(designWidth, rem2px) { // designWidth:'设计图宽度' 1rem==r ...

  6. __slots__属性

    使用__slots__时,子类不受影响 class Person(object): __slots__ = ("name","age") def __str__ ...

  7. 线程_使用multiprocessing启动一个子进程及创建Process 的子类

    from multiprocessing import Process import os # 子进程执行的函数 def run_proc(name): print("子进程运行中,名称:% ...

  8. C/C++编程笔记:C语言贪吃蛇源代码控制台(二),分数和食物!

    接上文<C/C++编程笔记:C语言贪吃蛇源代码控制台(一),会动的那种哦!>如果你在学习C语言开发贪吃蛇的话,零基础建议从上一篇开始哦!接下来正式开始吧! 三.蛇的运动 上次我已经教大家画 ...

  9. CPU监控 线段树裸题

    LINK:bzoj3064 此题甚好码了20min停下来思考的时候才发现不对的地方有点坑... 还真不好写来着 可这的确是线段树的裸题...我觉得我写应该没有什么大问题 不过思路非常的紊乱 如果是自己 ...

  10. centos7与centos6命令差异

    技术群: 816227112 查看ip centos6 : ifconfigcentos7 : ip addr 修改hostname centos6 : 修改/etc/sysconfig/networ ...