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(注意,跟C#中的不同!),即 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 函数。
- 浏览: 160640 次
- 性别:
- 来自: 深圳
最新评论
-
l0979365428:
给楼主补充个图片就完美了~
信息增益与熵
相关推荐
### iPhone SDK编程入门经典知识点详解 #### 一、iPhone与iOS概述 - **定义与特点**:iPhone是由苹果公司设计并销售的一款智能手机,其操作系统为iOS。iOS是一种基于Unix的操作系统,专为移动设备设计,提供了简洁...
《海康威视网络设备SDK编程指南》是针对海康威视公司生产的各类网络设备进行软件开发的重要参考资料,包括CVR(Cloud Video Recorder)、DVR(Digital Video Recorder)、LCD屏、报警主机以及楼宇可视对讲等多个领域...
NetSDK编程指导手册(大华摄像头分册) 本文档是NetSDK编程指导手册...本文档提供了详细的SDK编程指导,帮助软件开发者快速掌握SDK的使用方法,并提供了丰富的示例代码和接口说明,帮助开发者快速开发监控应用程序。
《海康威视安卓端设备网络SDK编程指南》是一份专为开发者准备的详细文档,旨在帮助他们理解和利用海康威视提供的SDK进行二次开发,实现与海康设备的网络通信和功能集成。这份指南是最新版本,确保了开发者能够获取到...
设备网络SDK编程指南,特别是针对热成像技术的版本,为开发者提供了一套全面的工具集,用于构建与热成像设备交互的应用程序。这个V5.2版的指南不仅涵盖了基本的SDK介绍,还详细列出了不同功能模块的调用顺序,确保...
首先,`ESP8266 SDK编程`涉及到的是ESP8266的软件开发工具包,它提供了所有必要的库、工具和文档,以便开发者能够编写代码,控制ESP8266并实现各种物联网应用。SDK通常包含驱动程序、固件升级工具、编译器配置和示例...
《ABB FlexPendant SDK编程手册》是一份详细指导开发者如何利用ABB FlexPendant SDK进行控制器应用程序开发的技术文档。FlexPendant是ABB机器人系统中的一个重要组件,它作为一个操作界面,允许用户对机器人进行编程...
本系列文章聚焦于Windows SDK编程,旨在帮助开发者深入理解和熟练运用Windows API进行软件开发。 在Windows SDK编程中,开发者会接触到以下几个核心知识点: 1. **API接口**:Windows SDK提供了大量的API函数,如...
NetSDK 编程指导手册大华 NetSDK 编程指导手册是软件开发者在开发网络硬盘录像机、网络视频服务器、网络摄像机、网络球机和智能设备等产品监控联网应用时的开发套件。该手册详细描述了开发包中各个函数的功能、...
Win32 SDK编程是Windows操作系统平台上进行底层程序开发的核心技术之一。它提供了丰富的API函数,使得程序员可以直接与操作系统交互,创建高效、灵活的应用程序。在本文中,我们将深入探讨Win32 SDK编程的基础知识,...
SDK编程笔记_—_计时器篇SDK编程笔记_—_计时器篇SDK编程笔记_—_计时器篇SDK编程笔记_—_计时器篇SDK编程笔记_—_计时器篇SDK编程笔记_—_计时器篇SDK编程笔记_—_计时器篇SDK编程笔记_—_计时器篇SDK编程笔记_—_...
本压缩包“windows sdk 编程例题.rar”可能是针对Windows SDK编程的一系列练习题目或教程,可能包含了一些实际的代码示例。虽然具体的文件名“studa.com”并未提供足够的信息来推测其内容,但我们可以根据Windows ...
学习Windows SDK编程首先需要掌握基础的程序结构和函数调用方式。 #### 2. WinMain入口函数 在Windows SDK编程中,WinMain是程序的入口函数,其声明方式是WINAPI,或者使用__stacall调用约定。该函数通常处理程序的...
《播放库SDK编程指南(for Windows)V6.1_海康版》是海康威视为开发者提供的一份详尽的技术文档,旨在帮助开发者在Windows平台上集成和使用其播放库进行应用程序开发。这份指南涵盖了从SDK的基础概念到实际编程应用...
海康威视设备网络SDK编程指南(解码器).pdf
### iPhone SDK编程入门:使用Objective-C详解 #### 获取与理解iPhone SDK 对于任何希望进入iPhone应用开发领域的开发者而言,掌握如何获取与使用iPhone SDK(Software Development Kit)是至关重要的第一步。SDK...
在Windows SDK编程中,开发人员通常使用C或C++语言来构建Windows应用程序。SDK(Software Development Kit)提供了必要的工具和文档,帮助开发者直接与Windows操作系统交互。本系列文章旨在介绍如何利用Windows SDK...