gcnew
Native Code Type 에 대한 Managed Code Type 을 보면 다음과 같은 것이 있다.
C++/CLI 에서의 ^ 는 C++ 의 * 에 해당한다. 따라서 ^ 형으로 선언된 변수를 동적으로 메모리에 생성하기 위해서는 gcnew 연산자를 이용한다. 동적으로 생성된 메모리는 delete 와 같은 연산자로 직접 메모리를 해제 해주어야 하지만 gcnew 연산자로 생성된 메모리는 Garbage Collector 가 자동으로 해제 시켜준다. Managed Code 이므로.
Native Code Type 에 대한 Managed Code Type 을 보면 다음과 같은 것이 있다.
Native Code | Managed Code |
std::string | String^ |
C++/CLI 에서의 ^ 는 C++ 의 * 에 해당한다. 따라서 ^ 형으로 선언된 변수를 동적으로 메모리에 생성하기 위해서는 gcnew 연산자를 이용한다. 동적으로 생성된 메모리는 delete 와 같은 연산자로 직접 메모리를 해제 해주어야 하지만 gcnew 연산자로 생성된 메모리는 Garbage Collector 가 자동으로 해제 시켜준다. Managed Code 이므로.
System::Byte CCliMemFileEx::ReadByte() { System::Byte^ pnValue; pnValue = gcnew System::Byte(); byte bValue = 0; m_pMemFileEx->ReadByte(&bValue); pnValue = bValue; return *pnValue; }