SDK & MFC

SDK是Windows API的集合,提供应用程序接口,而MFC是微软的基础类库,将API封装为C++类。SDK编程是直接调用API函数,灵活性高但相对复杂,适合底层和细节控制。MFC则是面向对象的类库,简化编程但可能失去部分灵活性。开发者通常在SDK和MFC之间根据项目需求和熟悉度进行选择。
摘要由CSDN通过智能技术生成

SDK和MFC

SDK —Software Development Kit 软件开发包
MFC —MicroSoft Foundations Classes 微软基础类
API —Application Programming Interface 应用程序接口

SDK 是 Windoews 的API 集合
MFC 是 Windoews API C++ 封装

SDK是Software Development Kit的缩写,“软件开发工具包”:辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做“SDK”。具体到我们这个系列教程,我们后面只讨论广义 SDK 的一个子集——即开发 Windows 平台下的应用程序所使用的 SDK。
其实上面只是说了一个 SDK 大概的概念而已,理解什么是 SDK,为了解释什么是 SDK 我们不得不引入 API、动态链接库、导入库等等概念。
首先要接触的是“API”,也就是 Application Programming Interface,其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API 而使操作系统去执行应用程序的命令(动作)。其实早在 DOS 时代就有 API 的概念,只不过那个时候的 API 是以中断调用的形式(INT 21h)提供的,在 DOS 下跑的应用程序都直接或间接的通过中断调用来使用操作系统功能,比如将 AH 置为 30h 后调用 INT 21h 就可以得到 DOS 操作系统的版本号。而在 Windows 中,系统 API 是以函数调用的方式提供的。同样是取得操作系统的版本号,在 Windows 中你所要做的就是调用 GetVersionEx() 函数。可以这么说,DOS API 是“Thinking in 汇编语言”的,而 Windows API 则是“Thinking in 高级语言”的。DOS API 是系统程序的一部分,他们与系统一同被载入内存并且可以通过中断矢量表找到他们的入口,那么 Windows API 呢?要说明白这个问题就不得不引入我们下面要介绍得这个概念——DLL。
DLL(又是一个缩写,感觉 IT 这个行业里三字头缩写特别多),即 Dynamic Link Library(动态链接库)。我们经常会看到一些 .dll 格式的文件,这些文件就是动态链接库文件,其实也是一种可执行文件格式。跟 .exe 文件不同的是,.dll 文件不能直接执行,他们通常由 .exe 在执行时装入,内含有一些资源以及可执行代码等。其实 Windows 的三大模块就是以 DLL 的形式提供的(Kernel32.dll,User32.dll,GDI32.dll),里面就含有了 API 函数的执行代码。为了使用 DLL 中的 API 函数,我们必须要有 API 函数的声明(.H)和其导入库(.LIB),函数的原型声明不难理解,那么导入库又是做什么用的呢?我们暂时先这样理解:导入库是为了在 DLL 中找到 API 的入口点而使用的。
所以,为了使用 API 函数,我们就要有跟 API 所对应的 .H 和 .LIB 文件,而 SDK 正是提供了一整套开发 Windows 应用程序所需的相关文件、范例和工具的“工具包”。到此为止,我们才真正的解释清楚了 SDK 的含义。
由于 SDK 包含了使用 API 的必需资料,所以人们也常把仅使用 API 来编写 Windows 应用程序的开发方式叫做“SDK 编程”。而 API 和 SDK 是开发 Windows 应用程序所必需的东西,所以其它编程框架和类库都是建立在它们之上的,比如 VCL 和 MFC,虽然他们比起“SDK 编程”来有着更高的抽象度,但这丝毫不妨碍它们在需要的时候随时直接调用 API 函数。
MFC AppWizard(exe) MFC(Microsoft Foundation Class,微软基础类库)是微软为了简化程序员的开发工作所开发的一套C++类的集合,C环境是面向过程的不支持MFC,MFC只封装在C++里,MFC无法在C环境中使用,是一套面向对象的函数库,MFC采用面向对象设计,将大部分的Windows API封装到C++类中,以类的方式提供给用户使用。在MFC中,类的命名都以字母“C”开头,利用这些类,可以有效地帮助程序员完成Windows应用程序的开发。MFC是建立基于MICROSOFT FUNDATION CLASS的工程;一般的MFC的应用程序,可以生成单文档、多文档或对话框程序框架;MFC其实是一个框架,里面包含了200多个类,MFC比较复杂,MFC框架把基本的功能都实现了,你只是需要把你特殊的功能加到MFC里面,比如你想建一个windows窗口,MFC APPWIZARD下,MFC中自包含了CWnd串口类,但是win32 application,就是要你自己写一个窗口类,才能用。

对于一个单文档应用程序(即我们在创建工程时第二步所选的Single document),都有一个CMainFrame类,和一个以“C+工程名+App”为名字的类、一个以“C+工程名+Doc”为名字的类、一个以“C+工程名+View”为名字的类。作为读者,在刚接触MFC的程序时,一定要逐步熟悉MFC AppWizard所生成的这几个类,以及类中的代码。这样才能在阅读程序时,知道哪些类、哪些代码是向导生成的,哪些类、哪些代码是我们自己编写的。

Win32 Console Application WIN32的控制台应用程序,类似DOS窗口的那个效果。console程序以main()为入口,不能使用win32 API函数;

API 和 SDK 是开发 Windows 应用程序所必需的东西,所以其它编程框架和类库都是建立在

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值