0%

Windows原理与应用(一)——简介

Windows原理与应用(一)——简介

前言

本系列是关于Windows原理与应用课程的部分相关笔记,可能并不是很详细,仅仅是个人记录

简介

  • 在具有一般编程基础(c++和c#)条件下,将引用需求与系统API进行对接
  • 理解操作系统原理中的并发,同步等概念
  • 了解并使用Windows平台中的特性,如dll/com等

主要内容

  1. 进程间通信
  2. 线程通信与同步
  3. 文件系统管理
  4. 注册表
  5. 动态链接库的创建与使用
  6. Windows COM原理与技术
  7. Windows窗体原理与消息处理机制

前置知识

  • C++/C#编程语言的使用
  • 数据结构

Windows的特点

  • 面向对象

    • Windows中,窗口、菜单、事件都是对象,对界面元素的操作和消息/事件的处理都涉及到对象。这些对象的属性和操作,由API的数据结构和函数提供
  • 消息/事件驱动

    • Windows通过维护消息队列的方式处理用户操作系统事件,用户的操作会向消息队列中插入一条新的消息,其他应用程序收到消息后会调用相应的消息处理函数进行处理
  • 资源共享与数据交换

    • 标准的MS-DOS程序运行时,可独占计算机所有资源。但Windows是一种抢先式[1]多任务操作系统,所以Windows应用程序必须和正在运行的其他程序共享这些资源
  • 与设备无关的GDI

    • Windows为应用程序提供了丰富的与设备无关API,免去了为不同的I/O设备编写软件的不同版本之烦恼。如利用与设备无关的GDI,应用程序使用同一函数,可在不同的显卡、打印机和显示器上输出同一个图形。

Windows编程工具——.NET框架

  • .NET框架是微软公司为了与Sun/Oracle公司的Java(EE)竞争,于2000年6月提出来的一种新的跨语言、跨平台、面向组件的操作系统环境,适用于Web服务(Web services)和因特网(Internet)分布式应用程序的生成、部署和运行
  • .NET框架也是Windows Vista、Windows 7和Windows 8等新版Windows操作系统的核心部件
  • .NET框架基于CLR运行,CLR类似于JVM,也是一个虚拟机,具有自动垃圾回收,运行时安全性保护,异常处理等高级功能

Windows编程工具的选择——关于Visual Studio

  • 在Visual Studio提供的各种语言工具中,只有Visual C++才能编写传统的Windows应用程序,VC也是VS中u唯一的一种可以同时[混合]编写非托管(API与MFC/ATL)程序和托管(.NET)程序的工具
  • VS中的其他语言工具(如C#、VB和F# 等)则只能编写.NET环境下的托管程序[2]

  1. 1.运行抢先式多任务处理模式,各进程占用CPU的时间由系统调度程序决定,当调度程序检测出有比当前任务优先级更高的程序事件后,暂停当前任务并将CPU时间分配给优先级更高的进程——摘自百度百科。简单来说就是Windows操作系统不允许一个程序长时间占有CPU,而是会根据优先级进行调度。
  2. 2.这是.NET的特性,.NET基于CLR运行托管代码,程序交由CLR进行管理,确保其安全性。但是CLR也允许越过托管与非托管的边界,调用其他的非托管库,这个特性成为互操作性。什么是“托管代码”?| Microsoft Docs