第1章,[Win32 章节]:Windows 简史

专栏导航

上一篇:第1章:用 VS2010 编写 WIndows SDK 程序

回到目录

下一篇:Windows 编程基础:动态链接库

本节前言

对于本节所讲解的知识,有可能,你会需要时不时地参考本专栏之前的文章。真的遇到了需要参考之前的文章的知识点,请你自行查阅。

我呢,也会提到一部分的参考课节。但是呢,你不应该依赖于我的主动提及。最好呢,你自己能够多去了解和查看本专栏目录。

本节主要是一个自习课。

一. 本节内容参考

下面的链接,有本节的参考教材。

参考课节:Windows 编程专栏参考教材

本节内容,位于佩措尔德的教材之中。

请大家打开教材。

本节,大家需要去自习的,是佩措尔德教材的第 1 页到第 4 页的全部内容,和书上第 5 页的 1.1.2 节之前的内容。

注意,原教材中,第 4 页有明确标注页码,而第 1 章开头所在的页码,为第 3 页,此页没有明确标注页码。而教材的第 2 页是一个空页,位于第 1 章开头所在页面的前一页。而第 3 页往前翻两页,是第一部分的大纲与概览。

也就是,我们要求大家浏览第一部分的大纲,阅读第一章开头的内容,阅读教材 1.1 节开头的内容,以及阅读 1.1.1 节的全部内容。

二. 本节导读

(1)本节主要内容

本节内容,我觉得,其实没啥好说的。这一节,主要地,其实就是在教材 1.1.1 节里面,吃一下微软与 IBM 的一些个瓜。

这种内容有啥用吗?

实际上,用处不大。

但是,阅读这样的东西,还是可以让我们增长许多的背景知识。当你学完了 Windows API 知识的时候,再回头来看这些个瓜,也许,你会觉得很有意思。

而在第一次学习的时候,这可以说是一种休息,一种学习中的休息。

学习,其实也是需要节奏上的张弛有度的。

一味地学习难点知识,其实也是不好的。

张弛有度,劳逸结合,还是好的。

在下面的几个小节中,我会视情况来讲一讲某些个概念术语。

视情况,是说,有的概念,我能够比较了解,能够多说一些。有的概念,我自己也是掌握得比较模糊,因此,可能说的就少一些。

(2)Windows NT

Windows NT 是什么?

简单来说,Windows XP、Win7,Win8,Win10 和 Win11,都是属于 Windows NT 。如果以后出现了 Win12,Win13 等等的版本,大体上,它们也会是属于 Windows NT 的。

(3)精简指令集 RISC

这是在 CPU 设计领域,会用到的一个概念。英特尔的 CPU,使用的是 CISC,复杂指令集系统。

采用复杂指令集的 CPU,倾向于多设计一些个指令,以便让 CPU 可以用指令的方式,来完成更多的功

与复杂指令集系统相对应地,便是精简指令集系统,RISC 。采取这种指令集系统的人认为,计算机中,常用的指令不多。因而,某些个 CPU 设计者,便只保留真正需要用到的核心指令。而某些个复杂指令集系统中所包含的复杂指令,精简指令集采取使用多条指令来完成同一功能的做法。

虽说,采用精简指令集,来完成复杂指令集系统中某一个复杂指令的功能,它会需要更多的指令,但是呢,在当今的指令流水线技术的辅助之下,精简指令集,反而运行得更高效。

精简指令集技术的发展,也使得本来采用复杂指令集系统的英特尔,在内部实现上,也将其复杂指令拆解为精简指令了。

指令流水线是啥?在这里,我们不去展开,知道有这回事就行了。

本专栏不是来设计 CPU 的。我们会有其他的专栏,来讲解设计 CPU 的知识。

(4)字符模式

微软早期的系统,是 MS-DOS 系统,这是运行在字符模式的操作系统。操作系统是字符模式的,相对应地,它里面的程序,也是运行在字符模式的。

什么是字符模式?

现如今的 Windows 应用程序,都有应用程序窗口,有标题栏、菜单栏、工具栏、状态栏等等的东西,用户使用键盘和鼠标等等输入设备,与应用程序窗口及其标题栏、菜单栏、工具栏等等的元素打交道,以便和应用程序进行互动。

这种带有应用程序窗口、标题栏、菜单栏、工具栏等等的界面元素,并通过键盘鼠标等输入设备与之交互的程序,为图形界面程序。这种程序,所使用的用户交互接口,为图形界面接口,英文为 Graphics User Interface,简称 GUI 。

相对地,早期的 MS-DOS,它里面的程序,不通过应用程序窗口等等的图形元素与用户开展交互,它们是运行在类似于现如今的 Windows 的命令提示符、Powershell 界面中,总之,是运行在命令行界面中的。用户通过输入命令,来运行程序,与程序进行交互。

比如,我们按下【Win + R】快捷键,会弹出来一个窗口。

Win 键是什么?
图1

图1 中,用圆圈标注出来的东西,就是 Win 键。

图1 中,我展示的,是笔记本键盘中的 Win 键。我们再来看一看台式机的外接键盘所用的 Win 键。
图2

一般地, Win 键都是位于键盘的最下面一行按键中靠左边的区域的,并且会位于左 Ctrl 键与左 Alt 键之间。

按下了【Win + R】快捷键以后,弹出的窗口如下图所示。
图3

在图3 的红色框线所示的输入框里面,我们输入【cmd】,如下图所示。
图4

然后呢,我们点击【确定】按钮,接下来,会弹出来一个窗口,如下图所示。
图5

在图5 中,我们可以输入命令,来与 Windows 交互。

比如,我们可以在其中输入【dir】,如下图所示。
图6

输入的时候,注意中文输入法与英文输入法的问题。如果,输入的时候,你采用了中文的拼音输入法等等,按一下 Shift 键,就可以将英文输入到图6 所示的命令行界面了。

输入好了以后,按下回车键,结果如下图所示。
图7

图7 中的最后一行文本,【C:\Users\Administrator>】上方的内容,便是【dir】命令的执行结果了。

通过【Win + R】快捷键,然后在弹出的窗口输入【cmd】,然后点击【确定】按钮,弹出来的界面,它是 Windows 的命令提示符界面,它也是 Windows 里面的一种命令行界面。

而 dir,则是可以在 Windows 的命令提示符界面里运行的一条命令。

像这种的,通过命令提示符界面、 Powershell 界面等等的命令行界面,通过输入命令的方式,来与操作系统或者应用程序交互的程序运行模式,就是字符模式。

在 Windows 里面,这种字符模式,在命令提示符、Powershell 窗口里面还有所保留。但是呢,Windows 里面,字符模式不是主流。

相比于 Windows,Linux 操作系统则是将字符模式作为一种重要的,甚至是主要的程序运行模式。

如果打算深入学习程序设计的知识的话,Linux,是大家需要去接触与学习的东西。

(5)Visual C++ 6.0

我在上大学的时候,课堂上,老师演示 C 语言程序,还在用着 Visual C++ 6.0 。这个软件,它是微软的一个产品,简称 VC++ 6.0。在当时来讲,它的功能是非常强大的。不过,从 win7 开始,这个程序就有着兼容性的问题了,渐渐地,这个软件也就淡出了人们的视线。

现在,若是想要开发 Windows 程序,更为推荐的,是微软的另一款 IDE,也就是 Visual Studio 软件。

书上推荐的软件是 VC++ 6.0,这在作者写书的当时,它的确是很新的软件。不过,现在来讲,有点过时了。

我们的专栏里,会去使用的,是 Visual Studio 软件的 2010 版和 2019 版,其中,以 2019 版为主。

之所以我使用的是 Visual Studio 2019,而不是 2022,或者是更新的版本,是因为,我的电脑性能没那么强,担心带不动 2022 以及更高的版本,因此,我就使用了 2019 版。

如果你的电脑性能够强,那么,你自己使用 2022 或更高版本也是可以的。

不过,在学习阶段,为了方便与专栏保持同步,我们还是推荐你使用 Visual Studio 2019 。

结束语

本节呢,实际上没啥好说的。

不过呢,大家还是可以从这里,来了解一下我们的讲解风格。

以后,我们也很有可能会开展长期的合作啊。

我导读,我讲课,你学习着。

你有不懂的,你可以向我提问。

这应该会很有趣吧。

专栏导航

上一篇:第1章:用 VS2010 编写 WIndows SDK 程序

回到目录

下一篇:Windows 编程基础:动态链接库

相关推荐
青瓦梦滋6 小时前
WebSocket协议
linux·服务器·网络·c++·websocket·网络协议·http
Zwawa10 小时前
编译器工具链:GCC、Clang、MSVC、ICC、armclang
c语言·嵌入式·编译器
学逆向的11 小时前
C 指针常量与常量指针
c语言·开发语言·网络安全
水饺编程11 小时前
第2章:Linux 基础,exit 命令
linux·c语言·汇编
CodeYp201912 小时前
第15讲:二叉搜索树
开发语言·c++·二叉搜索树
pipixia2003312 小时前
C++继承面试四连问:内存叠加、私有继承、sizeof、权限重映射
c++·面试·嵌入式·继承·面向对象·对象模型
极客 - L U13 小时前
卡尔曼滤波从零到精通
c语言·数据结构·单片机·嵌入式硬件·mcu
牵猫散步的鱼儿15 小时前
C++ 内存分区
c++
choumin15 小时前
C++ 标准容器为什么不能存引用
c++·容器·引用类型
谙弆悕博士15 小时前
用 C 写了个 Windows 聊天室,踩了几个多线程和控制台的坑
c语言·开发语言·c++·windows·网络编程·聊天室