SDK和DDK是什么? - 久月

vivilisa 2021-08-04 原文


SDK和DDK是什么?


  关于这两个概念,每次我看见都会一丝迷糊,我这样不写程序的人,不常用它们,但是记下来吧,免得下次又google:

SDK

  SDK,Software Development Kit 的缩写,中文意思“软件开发工具包”,通用点理解:辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做“SDK”。那么在编程开发中具体指什么呢?这里涉及到API和动态链接库的概念。

  API,Application Programming Interface,是操作系统提供给应用程序的一个调用接口,应用程序通过调用操作系统的 API 而使操作系统去执行应用程序的命令,在 Windows 中,系统 API 是以函数调用的方式提供的。比如取得操作系统的版本号,要做的就是调用 GetVersionEx() 函数,不用具体关注这个函数如何实现。那么如何调用这些API,这里又涉及到动态链接库的概念。

  DLL, 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 应用程序所需的相关文件、范例和工具的“工具包”。

 

DDK/WDK

  DDK,Device Development Kit的缩写,设备开发工具包的意思,vista之后已经升级更名为WDK(Windows Driver Kit),与SDK用意一致,只不过wdk是针对内核驱动程序的开发,而sdk是针对上层应用程序的开发。

 

发表于
2010-01-04 23:13 
久月 
阅读(4045
评论(0
编辑 
收藏 
举报

 

版权声明:本文为vivilisa原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/vivilisa/archive/2010/01/04/1639257.html

SDK和DDK是什么? - 久月的更多相关文章

  1. AD添加LOGO的方法 – ZHOUJJJ

    AD添加LOGO的方法 1 将logo图片转换成单色的BMP 图像。简单的方法是使用Windows自带的画图程 […]...

  2. 深入理解嵌套类和内部类 – 王君

    一、什么是嵌套类及内部类?    可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classe […]...

  3. [原创] 在Windows 2000中正确显示带Alpha通道的32位图像 (修订版) – I.AM.Wright

    [原创] 在Windows 2000中正确显示带Alpha通道的32位图像 (修订版) 讨论了如何在Windo […]...

  4. 服务器初始化操作 – jis117

    服务器初始化操作 1 sudo apt-get update 2 #]groupadd work    #]  […]...

  5. Hive(7)-基本查询语句 – nt杨

    Hive(7)-基本查询语句 一. 表和数据准备 1. 数据地址 链接:https://pan.baidu.c […]...

  6. [转]linux下查看进程内存使用情况 – 毕海

    [转]linux下查看进程内存使用情况 动态查看一个进程的内存使用 1、top命令 top -d 1 -p p […]...

  7. ueditor粘贴word图片无法显示的问题 – Xproer-松鼠

    ueditor粘贴word图片无法显示的问题 图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转 […]...

  8. C/C++回调函数 – 原来…

    C/C++回调函数 对于很多初学者来说,往往觉得回调函数很神秘,很想知道回调函数的工作原理。本文将要解释什么是 […]...

随机推荐

  1. Mac配置git

    1. 在本地git中添加git账户和邮箱,用于每次提交时记日志(log)   git config --glo […]...

  2. thinkPHP使用模型更新数据

    一.用模型静态方法:update([更新数组],[更新条件]) 1.更新条件用数组给出 public func […]...

  3. C++中RTTI的观念和使用

    下面这篇文章虽然有点老,但对C++的RTTI基本原理讲的比较透彻。该文章摘自UMLCHINA网站,是台湾一个群 […]...

  4. C#实现JWT无状态验证的实战应用

    前言 本文主要介绍JWT的实战运用。 准备工作 首先我们创建一个Asp.Net的,包含MVC和WebApi的W […]...

  5. FPGA驱动VGA显示静态图片

    一 、前言   VGA是最常见的视频显示接口,时序也较为简单。本文从利用显示屏通过VGA方式显示测试图案及静态 […]...

  6. SQL优化的几种方法

    1、对查询进行优化,应尽量避免全表扫描,首先考虑在where及order by上建立索引。 2、应尽量避免在w […]...

  7. compareTo来做比较。

    1 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd […]...

  8. 网络爬虫了解

    网络爬虫了解 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照 […]...

展开目录

目录导航