Marshal

    [C#] Marshal

    1. 데이터 타입IntPtr IntPtr 형식은 그 크기가 플랫폼마다 고유한 정수로 디자인 되었다. 즉, 이 형식의 인스턴스는 32비트 하드웨어 및 운영 체제에서는 32비트로, 64비트 하드웨어 및 운영 체제에서는 64비트여야 한다.  IntPtr 형식은 포인터를 지원하는 언어에서 사용할 수 있으며, 포인터를 지원하는 언어와 포인터를 지원하지 않는 언어 사이에서 데이터를 참조하는 일반적인 방법이 된다.  핸들을 보관하는 데도 IntPtr 개체를 사용할 수 있다. 예를 들어, IntPtr의 인스턴스는 파일 핸들을 보관하기 위해 System.IO..::.FileStream 클래스에서 광범위하게 사용된다.  IntPtr 형식은 CLS 규격이지만, UIntPtr 형식은 그렇지 않다. 공용 언어 런타임에서는 In..

    [C#] 관리되는, 관리되지 않는 코드

    관리되는 코드.NET CIL로 작성하고 컴파일 하는 .NET상의 코드 -GC 메모리 관리가 된다 관리되지 않는 코드기계 코드를 직접 컴파일 하도록 컴파일되는 .NET에 없는 코드 -GC 메모리 관리가 안된다.ex) 윈도우 시스템 자원IntPtr - 인터포인터관리되지 않는 메모리 블록에 대한 포인터 정수형 포인터를 의미하는 값 형식의 타입포인터는 메모리 주소값을 보관하는 곳IntPtr 타입은 메모리 주소를 가리키는 것 외에 윈도우 OS의 핸들값을 보관하는 용도로 쓰인다. 핸들은 윈도우 OS가 특정 자원에 대한 식별자로서 보관하는 값인데 일례로 파일이 좋은 예다.파일처리, OS에서 제공되는것 처리를 할 때 사용된다.ex) 이미지 처리에서도 쓰인다.Marshal Class - 마샬관리되지 않는 메모리 블록 ..