방법: /clr 컴파일에 네이티브 형식 사용
/clr 컴파일에서 네이티브 형식을 정의할 수 있으며 어셈블리 내에서 해당 네이티브 형식을 사용하는 것은 유효합니다. 그러나 네이티브 형식은 참조된 메타데이터에서 사용할 수 없습니다.
각 어셈블리에는 사용할 모든 네이티브 형식의 정의가 포함되어야 합니다.
자세한 내용은 /clr(공용 언어 런타임 컴파일)을 참조하세요.
예제
이 샘플에서는 네이티브 형식을 정의하고 사용하는 구성 요소를 만듭니다.
// use_native_type_in_clr.cpp
// compile with: /clr /LD
public struct NativeClass {
static int Test() { return 98; }
};
public ref struct ManagedClass {
static int i = NativeClass::Test();
void Test() {
System::Console::WriteLine(i);
}
};
이 샘플은 구성 요소를 사용하는 클라이언트를 정의합니다. 컴파일랜드에 정의되어 있지 않으면 네이티브 형식에 액세스하는 것은 오류입니다.
// use_native_type_in_clr_2.cpp
// compile with: /clr
#using "use_native_type_in_clr.dll"
// Uncomment the following 3 lines to resolve.
// public struct NativeClass {
// static int Test() { return 98; }
// };
int main() {
ManagedClass x;
x.Test();
System::Console::WriteLine(NativeClass::Test()); // C2653
}