다음을 통해 공유


컴파일러 오류 C3381

'identifier': 어셈블리 액세스 지정자는 /clr 옵션으로 컴파일된 코드에서만 사용할 수 있습니다.

형식은 액세스 지정자를 사용하여 선언되거나 정의되었으며, 이 형식은 사용해서 컴파일된 코드에서만 허용됩니다 /clr.

설명

이 오류는 위치가 잘못되었publicprotected거나, 키워드가 private 없거나, 내의 액세스 지정자 structclass 다음에 콜론(:)이 누락될 수 있습니다.

C++/CLI에서 네이티브 형식은 어셈블리 외부에서 볼 수 있지만 컴파일에서 /clr 네이티브 형식에 대한 어셈블리 액세스만 지정할 수 있습니다. 자세한 내용은 형식 표시 유형/clr (공용 언어 런타임 컴파일)를 참조하세요.

예시

다음 샘플에서는 C3381을 생성합니다. 이 문제를 해결하려면 먼저 정의에서 class A 지정자를 제거 public 하거나 옵션을 사용하여 컴파일합니다/clr. 다음으로 콜론을 추가한 후 private 에 대한 액세스를 지정합니다 class B {} b;. 중첩된 클래스는 선언의 일부로 어셈블리 액세스 지정자를 가질 수 없기 때문입니다.

// C3381.cpp
// compile with: /c
public class A {   // C3381
    private class B {} b;   // C3381
};