将 .exe 转换为 .com

Jak*_*nc. 1 ms-dos

我最近在笔记本电脑上下载了 MS-DOS 6,我希望能够在 cmd 上执行所有命令,但我需要将 .exe 转换为 .com 我将下载任何软件来执行此操作。

lor*_*nix 25

我认为您对 .com 和 .exe 扩展名的含义有些困惑。

  • .com 本质上是内存的 IMAGE,大小限制为小于 64K(实际上更像是 0xFF00 字节,呃 65,280,技术上因为 cmd 行和内容的前 256 个字节)
  • .exe 是一个链接程序,(可能)由部分库和代码、资源等组成,大小基本上是无限的,尽管确实存在物理内存限制)

两者的功能与命令一样好,事实上,查看您的 DOS 子目录,您会发现散布着 .com 文件和一堆 .exe 文件。不要认为只有 .com 文件是命令,从而混淆了这个问题。只是一个命名约定。

它确实与 MSDOS 的 CP/M 根源有关,因为程序大小限制为 64k,并且较大的程序必须将自己分页到内存中......那些被认为是命令。但值得庆幸的是,我们已经超越了 CP/M 的限制……进入了一组全新的限制……但那是另一回事了。

希望这会有所帮助。

  • 不,64 位和 32 位完全是另一回事。我们只是在谈论可在 DOS 中使用的程序。尽管 64 位版本的 DOS 会很有趣……在“大众错误中的法拉利引擎”中很有趣。 (4认同)

Ple*_*and 7

存在不同类型的 EXE 文件。有些可以在 MS-DOS 上运行,而有些则需要 Windows。您可以在 MS-DOS 上运行的那些不需要任何类型的转换。

为 Windows 编译的 EXE 文件,即使它们接受命令行参数并生成控制台输出,也不会在 DOS 上运行。它们依赖于 Windows 功能和 API(应用程序编程接口)才能正常工作。

如果您尝试在 DOS 上运行 Windows EXE 文件,您将收到以下消息:

This program cannot be run in MS-DOS mode.
Run Code Online (Sandbox Code Playgroud)

  • 通常是的,尽管可以自定义从 dos 运行时的行为。您可以创建一个混合 exe,它将在 windows 中作为 win32 控制台运行,也可以在真正的 dos 上运行。 (3认同)