문제

빠른 테스트 콘솔 앱을 구축하면서 NTVDM.Exe에 대해 읽고 있었고이 전 exe에 대해 불평하는 친구 기계에서 추락했습니다.

이해하면서 모든 DOS CMD Windows (C# 콘솔 앱 포함)는 32 비트가 아닌 16 비트로 실행됩니다.

이것이 사실입니까? 이것은 모든 내 Works Console App Back Office 앱이 32 비트를 최대한 활용하지 않고 16 비트로 실행되고 있음을 의미합니까?

Windows 서비스는 어떻습니까? 우리가 콘솔 앱으로 썼다 고 생각하면서 Windows 서비스로 실행 되었습니까?

감사

도움이 되었습니까?

해결책

X86 용으로 컴파일 된 모든 .NET 앱은 32 비트입니다.

C# 콘솔 앱은 "실제"DOS에서 실행되지 않습니다. OS 및 .NET 프레임 워크에 따라 32 비트 또는 64 비트 환경에서 실행됩니다.

다른 팁

이해하면서 모든 DOS CMD Windows (C# 콘솔 앱 포함)는 32 비트가 아닌 16 비트로 실행됩니다.

이것이 사실입니까?

아니요.

Windows에서 DOS 애플리케이션을 실행할 수 있으며 16 비트이지만 약간의 콘솔처럼 보이는 사실은 우연의 일치입니다.

16 비트 .NET 응용 프로그램은 없으며 응용 프로그램이 콘솔 모드인지 여부는 16 또는 32 비트인지 여부에 차이가 없습니다.

MS-DOS 앱은 NTVDM에서 16 비트 앱으로 실행됩니다.

"Wind CMD 또는 PowerShell에서 콘솔 애플리케이션을 실행하는 것은 아직 존재하지 않습니다. 이미 생성 된 콘솔 창을 재사용하는 반면, Exe에서 EXE를 두 번 클릭하면 애플리케이션을위한 새 콘솔 창이 생성됩니다.)

cmd! = dos

Windows 콘솔! = DOS

마찬가지로, 최소한 Windows 2000 (NT5) 이후로 Windows에 존재하는 전체 Windows 콘솔 API가 있습니다 (아마도 NT3/4 만 가능하지만).

.NET 콘솔 앱. (또는 기타 .NET 앱)은 JIT'ed의 대상 하드웨어로 실행됩니다. 따라서 x86의 경우 32 비트가됩니다.

이해하면서 모든 DOS CMD Windows (C# 콘솔 앱 포함)는 32 비트가 아닌 16 비트로 실행됩니다.

당신은 잘못. 모든 CMD.EXE Windows는 아키텍처에 따라 32 또는 64 비트입니다.

Dos는 거의 10 년 전에 Windows와 함께 죽었습니다.

16 비트 모드에서 실행할 수있는 .NET VM 구현에 대해 잘 모르겠습니다. Microsoft .NET 런타임과 모노는 모두 32/64 비트입니다. 나는 다른 작은 것들에 대해 잘 모르지만, 그들이 16 비트 모드에서 작동 할 수 있다면 놀랄 것입니다.

또한 cmd.exe는 32 비트 Windows 애플리케이션이므로 CMD.exe는 32 비트 모드로 실행됩니다. 반면, Command.com은 16 비트 모드로 실행됩니다.

실제로 콘솔 애플리케이션은 본질적으로 16 비트가 아닙니다. X86 보호 모드가 32 비트이기 때문에 Windows 이전에는 사실이 아니기 때문에 PORTERED 모드에서 실행하는 DOS에 대한 게임 또는 응용 프로그램은 32 비트입니다.

.NET에서 UI 유형 (또는 Windows 서비스에서와 같은 UI 부족)은 응용 프로그램의 단어 길이에 영향을 미치지 않습니다. 기본적으로 .net binaries는 플랫폼 독립적이며 호스트 머신의 .NET 프레임 워크, 커널 등의 유형에 따라 32 비트 또는 64 비트 응용 프로그램으로 실행됩니다. 그들은 64 비트에 직접 편집 할 수 있지만.

콘솔 exe에는 특별한 것이 없습니다. 단지 PE 파일입니다. 따라서 Console vs Winform Exe vs Windows 서비스에 관계없이 컴파일 된 모드에서 실행됩니다.

Visual Studio 등은 16 비트 EXE를 생성하지 않습니다. x86 대 x64는 더 흥미 롭습니다.-p

아마도 친구에게 .NET 프레임 워크가 설치되어 있지 않거나 1.1 만 있습니다).

DOS에서도 ".exe"는 16 비트 또는 32 비트 (적절한 코딩 또는 DOS 익스텐더 라이브러리 포함) 일 수 있습니다.

NTVDM.EXE는 16 비트 실행을 지원하는 DOS 에뮬레이터입니다 .COM 그리고 .EXE CPU가 16 비트이고 DOS 시스템 호출을 사용할 수 있다고 가정 할 수있는 환경의 파일. 명령 프롬프트와의 유일한 연관성은 텍스트 모드 DOS 프로그램이 콘솔 창을 사용하여 텍스트 모드에서 VGA 화면의 에뮬레이션을 제공한다는 것입니다.

언급 한 바와 같이, DOS에서 실행할 수있는 .NET VM은 없습니다. 그러나 모노 프로젝트 소스에서 시작하여 Freedos 아래에서 실행되는 것을 구축하는 것은 재미있을 것입니다. 친구를 놀라게하기 위해 ;-)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top