2011-04-07 2 views
1

나는 그것이 Common Intermediate Language라고 생각했지만 메모장에서는 전혀 보이지 않는다. 튜토리얼보다 현실적으로보기가 더 어려워 보입니까? 아니면 CIL에서 더 컴파일 된 바이트 코드 형식입니까?dotnet 실행 파일은 어떤 언어로 쓰여 있습니까?

+3

예, 이진 표현입니다. –

+0

이것은 비정상적인 질문 일지 모르지만 .NET을 배우는 사람에게는 너무 멀지 않습니다. 나는 그것이 downvotes를받을 자격이 있다고 생각하지 않습니다. +1. –

답변

2

CIL은 생각하고있는 "어셈블러"가 아니라 이진 형식의 이름입니다.

.NET 어셈블리가 텍스트 파일이라고 상상할 수 있습니까?

+3

나는 그것을 상상할 수있다. 나는 많은 것을 상상할 수있다! 그러나 아아, 나는 날 수 없다. – Amy

1

.NET 실행 파일은 PE 헤더 (기본 실행 파일과 동일하지만 값이 약간 씩 다름)가있는 이진 파일입니다. PE 헤더는 운영 체제에 CLR을로드하도록 지시하고 CLR은 어셈블리를로드합니다.

헤더 이상의 내용은 CIL 코드의 바이너리 표현과 일부 메타 데이터 및 기타 내용입니다. 자습서에서 보는 텍스트는 어셈블리 언어 프로그래밍에 대한 자습서에서 볼 수있는 어셈블리 언어 코드가 이진 머신 코드의 텍스트 표현 인 것과 거의 같은 방식으로 CIL의 텍스트 표현입니다.

자세한 내용은 http://www.yetanotherchris.me/home/2010/7/12/inside-net-assemblies-part-1.html (기타 다수 참조)을 참조하십시오.

+0

.Net 실행 파일은 기본 실행 파일과 동일한 형식을 가지고 있지 않습니다. – Guge

+1

@Guge : 고마워. 나는 나의 대답을 편집하여 명확하게했다. –

0

일반적으로 .NET 실행 파일은 작성되지 않으며 C#, F # 또는 VB.Net과 같은 다른 언어에서 컴파일됩니다.

.Net 실행 파일의 내용은 ILDASM 도구로 볼 수 있습니다.

내용은 먼저 반사, 서명 또는 기타 메타 코드 용도로 사용되는 목록입니다.

두 번째로 MSIL 지침 자체가 있습니다. 이것들은 일종의 바이트 코드 형식이지만, ILDASM은 명령이 무엇인지 보여줍니다.

때때로 이미지, 사운드 또는 실행 파일에 포함 된 기타 콘텐츠와 같은 리소스가 있습니다.

실행 파일은 설치하는 동안 (또는 드문 경우입니다) 실행시 선구자로 네이티브 코드로 컴파일 된 Just-In-Time입니다. 그 결과 생성 된 원시 코드는 재사용을 위해 저장 될 수 있습니다. (이것은 PDC 2001에서 말한 것입니다. "오래된 것"일 수 있습니다.)

관련 문제