2011-01-31 3 views
1

저는 지난 몇 년 동안 프로그래밍에 대해 배우기 시작했습니다. 모든 내용이 C# .NET에 있습니다. DLL 파일이 .NET 이전에 존재했기 때문에 내가 지금 알고있는 .NET DLL 파일과 이전에 존재했던 COM DLL 파일 사이에 유사점이 있는지 알고 싶습니다. 다른 말로하면. NET을 사용하기 전에 .NET에서 만든 .NET DLL을 가져 와서 COM 개발자에게 제공하면 파일에서 정보를 얻을 수 있습니까? 아니면 익숙한 확장 기능을 가진 횡설수설처럼 보일까요? 지금까지 응답을COM DLL과 확장 DLL 이외의 .NET DLL간에 유사점이 있습니까?


업데이트

감사합니다. 이제 EXE 파일은 어떻게됩니까? .NET EXE와 COM EXE간에 유사점이 있습니까? .NET을 설치 한 컴퓨터가 .NET exe에 대한 진입 점을 찾을 수 있습니까? 아니면 단순히 파일이 손상되었거나 유효하지 않다고 생각합니까?

답변

4

유사성, 따라서 동일한 확장자의 재사용은 기능적으로 동일하다는 것입니다. 즉, 둘 다 잠재적으로 공유되는 메소드와 클래스를 포함하는 클래스 라이브러리입니다.

그러나 .NET dll이 COM에서 표시되지 않으면 COM 개발자는 유용한 정보를 얻을 수 없습니다.

편집 : 당신의 갱신 당

, 닷넷이없는 기계 (닷넷 프레임 워크의 필요한 버전 없이도 하나) 설치, 응용 프로그램에 대한 진입 점을 찾을 수있을 것입니다하지만, 예외가 발생하면 (즉, 실제로 수행하기 전에) 실패합니다.

1

아무런 대응이 없습니다. .NET 어셈블리는 5 바이트의 컴퓨터 코드를 포함하는 데이터 파일입니다. 나머지는 메타 데이터 및 IL입니다. ildasm.exe 나 Reflector와 같이 도구를 디 컴파일하지 않고 충분히 횡설수설하십시오.

+0

실제로 .NET 어셈블리는 PE 파일 형식을 따릅니다. 그래서 그것은 단지 "데이터 파일"이 아닙니다. –

+0

Sigh. 그것은 단지 5 바이트의 코드를 포함하는 PE32 파일 포맷이고, 나머지는 데이터입니다. –

+0

에는 많은 PE 형식 (수출, 섹션 등)이 포함되어 있습니다. 또한 때때로 5 바이트 이상의 관리되지 않는 코드가 포함되어 있습니다. –

관련 문제