2009-05-31 1 views
1

나는 몇 가지 "기본"차이를 알고 있지만, 내 마음에 몇 가지 질문이 아직 없습니다 :CPP/CLI 어셈블리와 CS/VB 어셈블리의 차이점은 무엇입니까?

  • 실행시 성능에서의 차이는 무엇입니까? // 이것은 정말로 알고 싶습니다.
  • 왜 C++/CLI를 사용하여 MSIL 어셈블리를 만들 수 없습니까?
  • MSIL/CIL 어셈블리의 PE 코드 (.NET의 PEKind 아님)는 무엇입니까? (C++/CLI 어셈블리는 관리되지 않는 바이너리와 동일한 PE 코드를가집니다.)

추가 지식/답변을 부탁드립니다.

+0

그건 그렇고, 내 프로젝트 매니저 한테 물어 보지 마 : P. – Anzurio

답변

1

C++/CLI 어셈블리에는 잠재적 인이 관리 코드보다 성능이 좋은 원시 코드가 포함될 수 있습니다. 그러나 네이티브 클래스 또는 관리되는 코드 (일반적으로 네이티브 클래스 또는 네이티브 API 호출을 호출 할 때) 사이의 전환에는 자동 생성 마샬링 및 복싱이 포함되어 일부 사이클을 실제로 빨아 들일 수 있습니다.

두 번째 질문에 대해서는 할 수 있습니다. /clr:pure을보십시오.

관리되는 혼합 모드 어셈블리는 모두 DLL이지만 확장 된 숫자는 .NET metadata입니다. 순수 MSIL 어셈블리는 기본 인터페이스가 없습니다 (dumpbin /exports C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.Build.Tasks.v3.5.dll을 시도한 다음 동일한 파일 ildasm을 시도하십시오).

관련 문제