Search
Duplicate
🕹️

C++/CLI로 Managed Type, Native Type 짬뽕하기(1/2)

Category
S/W 엔지니어
Tags
C++
C++/CLI
interoperability
Created time
2006/09/21

1. Native Type와 Managed Type 교차 상속 불가(H.Sutter에 의하면 지원 예정이라고.)

class Native {}; ref class Managed: public Native {}; //불가 ref class Clr {}; class Native : public Managed {}; //불가
C++
복사

2. Managed Type의 멤버로 Native Type 객체 생성 불가. 단, pointer Type일 경우에는 가능.

class Native {}; ref class Clr { public: Native native; //불가 Native* pNative; //가능 };
C++
복사

3. Native enum 역시 마찬가지. Managed Type 내부에 Native enum 정의 불가

ref class Clr { enum { nativeEnum }; //불가 }
C++
복사

4. Managed Type의 Method 안에서는 Native Type 생성 및 사용 가능(포인터, 객체 모두 포함해서)

class Native {}; ref class Clr { void Method() { Native n; //가능 Native* pNative = new Native; //가능 } }
C++
복사

5. Managed Type의 Method signature에 Native Type이 포함된 경우, 사용은 가능하나 metadata로 빠지지 않음(다른 CLR language와 호환 불가)

class Native {}; ref class Clr { Native MethodIncludeNative(); //가능하나 다른 CLR 언어와 호환되지 않음 void MethodIncludeNative(Native n); //가능하나 다른 CLR 언어와 호환되지 않음 }
C++
복사
댓글 백업