首页 > 解决方案 > cmd.exe 是用哪种语言编写的?

问题描述

命令提示符,也称为 cmd.exe 或 cmd(在其可执行文件名之后),是 Windows NT、Windows CE、OS/2 和 eComStation 操作系统上的命令行解释器。它是 DOS 和 Windows 9x 系统中的 COMMAND.COM 的对应物(其中也称为“MS-DOS 提示符”),类似于在类 Unix 系统上使用的 Unix shell。

资料来源:维基百科

我到处搜索,但无法得到这个问题的答案。

每个网站都关注在cmd.exe中使用批处理语言的事实,但我找不到编写它的语言。


所以我的问题是:

在 Windows 中用于编写命令提示符或 cmd.exe 的语言是什么?

标签: windowscmdcommand-prompt

解决方案


该文件在文本编辑器中打开时包含路径onecore\base\cmd\maxpathawarestring.cpp,这表明至少有一个源文件是用 C++ 编写的。

Hans Passant的附录:

它所依赖的导入使其很可能是 C 和 C++ 的混合体。CRT 函数,如longjmp, callocfree表示 C 代码,很可能是古老的,可以追溯到 command.com 时代。它显然也使用了 C++ 异常处理,C++ 是他们最近所有代码开发的首选武器。混合并不少见。

eryksun

在调试器下,很明显最近对 CMD 的添加是用 C++ 编写的。x cmd!*::*展示了 C++std命名空间的大量使用

[...]

但是 CMD 仍然主要是 C,而不是 C++。它的命令和支持函数被实现为 C 函数,例如eExiteChdirParseStatementSearchForExecutableExecPgm。他们还没有将所有这些旧的 C 代码移植到 OOP 设计中。

所以我会混合使用 C 和 C++。


推荐阅读