gcnew




 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;
}

Posted by six605
,