컴파일러 오류 C3381
'identifier': 어셈블리 액세스 지정자는 /clr 옵션으로 컴파일된 코드에서만 사용할 수 있습니다.
형식은 액세스 지정자를 사용하여 선언되거나 정의되었으며, 이 형식은 사용해서 컴파일된 코드에서만 허용됩니다 /clr
.
설명
이 오류는 위치가 잘못되었public
protected
거나, 키워드가 private
없거나, 내의 액세스 지정자 struct
class
다음에 콜론(:
)이 누락될 수 있습니다.
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
};