2017-03-19 10 views
0

은 내 * .exe 파일의 다음과 같은 메타 정보가 있습니다metainfo에서 'CallCnvntn'은 무엇을 의미합니까?

을하지만 무슨 CallCnvntn '방법을 알아낼 수 없습니다. 나는 인터넷에 아무 정보도 찾아 내지 않았다.

그런데 [AutoLayout], [AnsiClass] 및 [BeforeFieldInit] 플래그가 사용 된 이유를 설명해 주시겠습니까?

답변

1

ildasm에서 작업 한 Microsoft 프로그래머는 "호출 규칙"을 사용하여 적절하게 만들었습니다.

the CLI spec에서 메타 데이터 속성의 정확한 의미를 찾을 수있는 가장 좋은 장소입니다. 빠른 속도로 : [AutoLayout]은 .NET의 LayoutKind.Auto enum 값과 동일합니다. 클래스는 기본적으로 LayoutKind.Auto를 가지며, 구조체는 기본적으로 LayoutKind.Sequential을가집니다. [AnsiClass]는 CharSet.Ansi 열거 형 값과 같습니다. 이 두 유형의 속성은 C# 코드의 [StructLayout] 속성으로 변경할 수 있습니다. 일반적으로 pinvoke 선언에 사용할 유형을 작성하는 경우에만 수행됩니다. [BeforeFieldInit]은 유형의 정적 생성자를 실행해야하는시기를 결정합니다. 기본적으로 제공되므로 CLR은 코드에서 클래스의 정적 필드를 사용할 때까지 호출을 지연시킬 수 있습니다.