Windows核心编程系列视频课程(NT+SDK+MFC+API)

课程囊括的windows相关很多的学习知识点:MFC、进程及线程、WinAPI、SDK、数据类型…… 通过该课程的学习结合windows项目课程完成windows相关项目

21086人学习

高级83课时2018/02/01更新

二维码下载学堂APP缓存视频离线看

杨波
    • 畅销套餐
    • 精选套餐
    • 人气套餐
    • 尊享套餐
    • 高薪套餐
C语言开发工程师职业学习系列套餐
C语言编程基础视频课程(七日成蝶)
261183人学习
¥49.00
C语言课程升华篇之打字游戏(七日成蝶)
22497人学习
¥29.00
Linux基础入门教程
28817人学习
¥5.00
更 多 45 门 课 程
C/C++跨平台研发基础入门与实战系列专题
C++ 设计模式理论与实战大全
94289人学习
¥198.00
C++QT5跨平台界面编程原理和实战大全视频课程
288073人学习
¥268.00
FFmpeg安卓流媒体播放器开发实战视频课程 -基于NDK、C++和 FFmpeg Android
156984人学习
¥298.00
更 多 23 门 课 程
C++跨平台开发工程师从技能掌握到项目实战课程
C++11 14 17 20 多线程从原理到线程池实战
27297人学习
¥199.00
Libevent C++高并发网络编程
70860人学习
¥298.00
【夏曹俊】C++编程FFMpegSDK美颜直播推流实战-基于qt5,opencv视频课程
101700人学习
¥198.00
更 多 14 门 课 程
C++跨平台实战系列专题
C++QT5跨平台界面编程原理和实战大全视频课程
288073人学习
¥268.00
【夏曹俊】C++socket网络编程大全实战http服务器(支持php)视频课程
91500人学习
¥128.00
【夏曹俊】C++编程FFMpegSDK美颜直播推流实战-基于qt5,opencv视频课程
101700人学习
¥198.00
更 多 9 门 课 程
C++跨平台实战系列专题
C++QT5跨平台界面编程原理和实战大全视频课程
288073人学习
¥268.00
【夏曹俊】C++socket网络编程大全实战http服务器(支持php)视频课程
91500人学习
¥128.00
【夏曹俊】C++编程FFMpegSDK美颜直播推流实战-基于qt5,opencv视频课程
101700人学习
¥198.00
更 多 9 门 课 程
  • 课程介绍
  • 课程大纲

适合人群:

1、有一定工作经验想进一步提升的学员 2、有一定编程经验对windows感兴趣的同学

你将会学到:

课程囊括的windows相关很多的学习知识点:MFC、进程及线程、WinAPI、SDK、数据类型…… 通过该课程的学习结合windows项目课程完成windows相关项目

课程简介:

NT结构

  • 它是指一系列微软设计及制造, 由Windows NT所派生出的视窗操作系统架构.

NT架构的运行流程为:


  • 软件载入用户态

  • 从用户态载入核心态

  • 对硬件进行操作

  • 用户态我们也称之为 RING3, 它是我们平时所用的.

  • 核心态我们也称之为 RING0, 它是操作系统平时用的.

  • Alt NT结构图

Windows API

  • Windows提供了一套程序开发接口, 全名叫做 Application Programming Interface, 即应用程序编程接口.

  • 它有 R0 API 和 R3 API

  • WindowsAPI是向下兼容的

  • 为了实现向下兼容, 在有新的函数的时候, 通常会加一个Ex

    • 比如, MessageBox, 有新函数叫 MessageBoxEx

SDK

  • 软件开发工具包(Software Development Kit, SDK)一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、作业系统等创建应用软件的开发工具的集合.

  • SDK全称为 Software Development Kit.

MFC

  • MFC是一套框架

  • 它是微软提供的, 用于在C++环境下编写用于程序的一个框架和引擎

  • 它可以说是 WinAPI 和 C++ 结合后的再一次封装

  • 它属于应用程序框架

Windows API的分类

基础服务(Base Services)

  • 提供对Windows系统可用的基础资源的访问接口.

    • 文件系统(file system)

    • 外部设备(device)

    • 进程(process)

    • 线程(thread)

    • 访问注册表(Windows registry)

    • 错误处理机制(error handling)

图形设备接口(GDI)

  • 提供输出图形内容到显示器, 打印机以及其他外部输出设备.

图形化用户界面(GUI)

  • 提供创建和管理屏幕和大多数基本控件(control)

    • 比如按钮和滚动条

  • 接收鼠标和键盘输入

  • 其他与GUI有关的功能

通用对话框链接库(Common Dialog Box Library)

  • 为应用程序提供标准对话框

    • 比如打开/保存文件对话框

    • 颜色对画框

    • 字体对话框等等.

通用控件链接库(Common Control Library)

  • 为应用程序提供接口来访问操作系统提供的一些高级控件.

    • 比如状态栏(status bar)

    • 进度条(progress bars)

    • 工具栏(toolbar)

    • 标签(tab)

Windows外壳(Windows Shell)

  • 作为Windows API的组成部分, 不仅允许应用程序访问Windows外壳提供的功能, 还对之有所改进和增强.

网络服务(Network Services)

  • 为访问操作系统提供的多种网络功能提供接口

    • 它包括NetBIOS

    • Winsock

    • NetDDE

    • RPC

    • ...

Web相关API

  • Internet Explorer网页浏览器也提供许多程序接口

    • 一组图像过滤组件

    • 利用COM对象为应用程序提供解析URL服务

    • 应用程序也可以为其他程序提供自己的URL处理程序

    • 位于shdocvw.dll和mshtml.dll之中

    • 可嵌入的网页浏览器控件(以及 Trident / MSHTML 引擎)

    • urlmon.dll中的命名服务(URL moniters service)

    • WinInet IE的网络层,支持HTTP和HTTPS等协议

    • 一个支持多种语言文本的链接库(mlang.dll)

    • DirectX Transforms

    • XML支持(MSXML组件)

  • Windows的邮件功能相关的API

    • 在Windows 7取消邮件功能之后也随之从Windows API中去除

    • 由于Windows Mail在Windows Vista上取代了Outlook Express, 对应的API也随之变化.

    • 地址本和邮件API

多媒体相关API

  • 自从Windows 95 OSR2以来, Microsoft把DirectX API作为Windows安装的一部分.

  • DirectX提供一组松散相关的多媒体和游戏服务

    • 自DirectX 9以来, 相比Direct3D更倾向于后者

    • 因为Direct3D提供更多面的高性能图形功能(毕竟2D渲染只是3D渲染的(不严格)子集).

    • 已被Direct2D替代。

    • Direct3D可以作为OpenGL的替代, 来访问3D加速硬件.

    • DirectDraw提供硬件加速2D framebuffer(帧缓冲)访问接口.

  • DirectSound提供底层次的硬件加速声卡访问.

    • 被XAudio替代

  • DirectInput用来与输入设备(摇杆和gamepad)进行通信

    • 已被DirectX 9中引入的XInput所替代

  • DirectPlay提供一个多人游戏的架构(multiplayer gaming infrastructure).

    • 它已经被DirectX 9所替代

    • Microsoft不建议用它开发游戏。

  • DirectShow可以创建和运行通用的多媒体管道(generic multimedia pipelines)

    • 它可以与GStreamer框架相媲美

    • 经常被用来渲染游戏视频和创建媒体播放器(Windows Media Player

    • 诸如FFDShow之类的编解码器正是基于此;

    • 在Windows Vista及更高版本中, DirectShow被Media Foundation替代).

    • 不建议用DirectShow开发游戏

  • DirectMusic提供类似MIDI的功能

    • 与DirectSound一起被XAudio替代

程序通信API

  • Windows API的功能主要通过使操作系统和应用程序之间的交互来实现.

    • 为了实现不同Windows应用程序的通信, 微软随着主要Windows API, 推出一系列的技术.

    • 最初的DDE(Dynamic Data Exchange)升级为对象连接与嵌入(Object Linking and Embedding)

    • 再后来是组件对象模型(COM)

封装库

  • 微软利用许多更底层的Windows API函数, 开发出许多封装库(wrapper), 让应用程序以更抽象的方式与Windows API进行交互.

  • MFC(Microsoft Foundation Class Library)用C++ 类别来封装Windows API的功能,因而允许用更为面向对象的方式与API进行交互

  • ATL(Active Template Library)是对COM的面向模板(template oriented)的封装

  • WTL(Windows Template Library)作为ATL的增强,被用来作为MFC的轻型的替代物

  • 其他**的封装库是Borland公司的产品, 为了与MFC竞争而推出的OWL(Object Windows Library)提供了类似的面向对象封装

    • 不久Borland又推出VCL(Visual Component Library)来取而代之

  • 大多数的Windows 程序框架(application framework)是对Windows API的封装

    • .NET Framework、Java以及其他在Windows下的程序语言, 都是(或者包含)封装库.

Windows API入门

我们使用Visual Studio系列软件在进行Windows程序开发的时候, VS会默认的给我们进行一些附加库的添加.
Alt VS默认附加库
所以, 我们只需要添加 #include 就可以在我们的项目中使用Windows的API了.
Alt VS程序

Windows.h

它包含了Windows里大量我们常用的API函数

  • Windows.h 是一个特别重要的头文件, 它包含了其他Windows头文件, 这些头文件的某些也包含了其他头文件.

    • WinDef.h

    • WinNT.h

    • WinBase.h

    • WinUser.h

    • WinGDI.h

WinDef.h

Windows基础类型定义头文件

WinNT.h

Unicode支持头文件

WinBase.h

Kernel函数头文件

WinUser.h

用户态(Ring3)接口头文件

WinGDI.h

图形设备接口头文件

……

展开更多

课程大纲-Windows核心编程系列视频课程(NT+SDK+MFC+API)

展开更多
在线
客服
APP
下载

下载Android客户端

下载iphone 客户端

官方
微信

关注官方微信

返回
顶部