C++/CLI Value Types and Memory Location




C++/CLI 에서 Value Type 은 Stack 에 할당 되거나, Native 또는 Managed Heap 에 메모리 할당 될 수 있다.


다음과 같이 Value Class 를 선언한다.
value class MyData
{
  property int Simple;
};



아래와 같이 변수를 지역 변수로 선언하면 객체는 Stack 에 메모리를 할당한다.
MyData d1;
d1.Simple = 11;



Nativ Pointer 를 사용하여 new 연산자로 객체를 생성하면 메모리는 Native Heap 에 생성된다.
MyData* pd2 = new MyData();
pd2->Simple = 22;
delete pd2;



gcnew 연산자를 사용하여 객체를 생성하면 메모리는 Managed Heap 에 생성되며 이때는 Boxing, UnBoxing 과정이 이루어 진다.
MyData^ d3 = gcnew MyData();
d3->Simple = 33;
delete d3;   // invokes Dispose







출처 : http://weblogs.asp.net/cnagel/archive/2005/02/28/381542.aspx










■ 사용 예


1. C++/CLI 에서의 코드





2. 생성된 DLL 파일을 참조한 C# 에서의 코드







■ History

1. 2009.10.21  포스팅


Posted by six605
,