C#控制台应用程序全部为16位?

C#控制台应用程序全部为16位?,c#,console-application,16-bit,ntvdm.exe,C#,Console Application,16 Bit,Ntvdm.exe,当我构建一个快速测试控制台应用程序时,我正在阅读有关NTVDM.exe的信息,它在朋友的机器上崩溃,抱怨这个exe 据我所知,所有DOS cmd窗口(包括C#控制台应用程序)都以16位而不是32位运行 这是真的吗?这是否意味着所有my works console应用程序后台应用程序都以16位运行,而不是充分利用32位的可用性 Windows服务呢?我相信我们是作为一个控制台应用程序编写的,然后让它作为windows服务运行 谢谢为x86编译的任何.NET应用程序都将是32位的 C#控制台应用程序

当我构建一个快速测试控制台应用程序时,我正在阅读有关NTVDM.exe的信息,它在朋友的机器上崩溃,抱怨这个exe

据我所知,所有DOS cmd窗口(包括C#控制台应用程序)都以16位而不是32位运行

这是真的吗?这是否意味着所有my works console应用程序后台应用程序都以16位运行,而不是充分利用32位的可用性

Windows服务呢?我相信我们是作为一个控制台应用程序编写的,然后让它作为windows服务运行


谢谢

为x86编译的任何.NET应用程序都将是32位的


C#控制台应用程序不是在“真正的”dos中运行的-它们运行在32位或64位环境中-这取决于您的操作系统和.NET framework。

任何为x86编译的.NET应用程序都将是32位的

C#控制台应用程序不是在“真正的”dos中运行的-它们运行在32位或64位环境中-这取决于您的操作系统和.NET framework。

a.NET控制台应用程序。(或任何其他.NET应用程序)将作为JIT的目标硬件运行。因此,对于x86,它将是32位的。

A.NET控制台应用程序。(或任何其他.NET应用程序)将作为JIT的目标硬件运行。所以对于x86,它将是32位的

据我所知,所有这些都是DOS cmd windows (包括C#控制台应用程序)以 16位不是32位

这是真的吗

不,一点也不

您可以在Windows下运行DOS应用程序,它们是16位的,但它们看起来有点像控制台,这几乎是巧合

没有16位的.NET应用程序,应用程序是否为控制台模式与它是16位还是32位没有区别

据我所知,所有这些都是DOS cmd windows (包括C#控制台应用程序)以 16位不是32位

这是真的吗

不,一点也不

您可以在Windows下运行DOS应用程序,它们是16位的,但它们看起来有点像控制台,这几乎是巧合


没有16位的.NET应用程序,应用程序是否为控制台模式与它是16位还是32位没有区别。

控制台exe没有什么特别之处;它只是一个PE文件。因此,无论控制台、winform exe还是windows服务,它都将以编译时的任何模式运行

Visual Studio etc永远不会生成16位exe。x86对x64更有趣-p


您的朋友可能没有安装.NET framework(或只有1.1版)。

控制台exe没有什么特别之处;它只是一个PE文件。因此,无论控制台、winform exe还是windows服务,它都将以编译时的任何模式运行

Visual Studio etc永远不会生成16位exe。x86对x64更有趣-p

您的朋友可能没有安装.NET framework(或者只有1.1版)

据我所知,所有DOS cmd窗口(包括C#控制台应用程序)都以16位而不是32位运行

你错了。所有cmd.exe窗口均为32位或64位,具体取决于体系结构

DOS与Windows ME一起在大约十年前去世

据我所知,所有DOS cmd窗口(包括C#控制台应用程序)都以16位而不是32位运行

你错了。所有cmd.exe窗口均为32位或64位,具体取决于体系结构


DOS与Windows ME一起在大约十年前消亡。

我不知道有哪种.NET VM实现能够在16位模式下运行。Microsoft.NET运行时和Mono都是32/64位的。我不知道其他较小的,但如果它们能在16位模式下工作,我会感到惊讶

此外,cmd.exe以32位模式运行,因为cmd.exe是32位Windows应用程序。另一方面,command.com以16位模式运行

实际上,控制台应用程序远不是天生的16位。这根本不是真的,在Windows之前甚至不是真的,因为x86保护模式是32位的,所以任何在portected模式下运行的DOS游戏或应用程序都是32位的


在.NET中,您的UI类型(或缺少Windows服务中的UI)不会影响应用程序的字长。默认情况下,.NET二进制文件是独立于平台的,根据主机的.NET Framework、内核等类型,可以作为32位或64位应用程序执行。尽管它们也可以直接编译为64位。

我不知道有哪种.NET VM实现能够在16位模式下运行。Microsoft.NET运行时和Mono都是32/64位的。我不知道其他较小的,但如果它们能在16位模式下工作,我会感到惊讶

此外,cmd.exe以32位模式运行,因为cmd.exe是32位Windows应用程序。另一方面,command.com以16位模式运行

实际上,控制台应用程序远不是天生的16位。这根本不是真的,在Windows之前甚至不是真的,因为x86保护模式是32位的,所以任何在portected模式下运行的DOS游戏或应用程序都是32位的


在.NET中,您的UI类型(或缺少Windows服务中的UI)不会影响应用程序的字长。默认情况下,.NET二进制文件是独立于平台的,根据主机的.NET Framework、内核等类型,可以作为32位或64位应用程序执行。尽管它们也可以直接编译为64位。

即使在DOS下,.EXE也可以是16位或32位(使用适当的编码或DOS extender库)。

即使在DOS下,.EXE也可以是16位或32位(使用适当的编码或DOS extender库).

NTVDM.EXE是一种DOS仿真器,支持在假定CPU为16位且DOS系统调用可用的环境中运行16位
.COM
.EXE
文件。它与命令提示的唯一关联是文本模式DOS程序使用控制台窗口提供文本模式下VGA屏幕的模拟

如前所述,没有.NET VM a