Condividi tramite


Errore del compilatore C3381

'identifier': gli identificatori di accesso agli assembly sono disponibili solo nel codice compilato con un'opzione /clr

Osservazioni:

Un tipo è stato dichiarato o definito usando un identificatore di accesso, consentito solo nel codice compilato tramite /clr.

Questo errore può derivare da una parola chiave , , o non posizionata publico da due punti mancanti (protected) dopo un identificatore di accesso all'interno di o private:.classstruct

In C++/CLI i tipi nativi possono essere visibili all'esterno di un assembly, ma è possibile specificare solo l'accesso agli assembly per i tipi nativi in una /clr compilazione. Per altre informazioni, vedere Visibilità dei tipi e /clr (compilazione Common Language Runtime).

Esempio

L'esempio seguente genera l'errore C3381. Per correggerlo, rimuovere prima l'identificatore public dalla class A definizione o compilarlo usando l'opzione /clr . Aggiungere quindi due punti dopo private per specificare l'accesso per class B {} b;. Ciò è dovuto al fatto che una classe nidificata non può avere un identificatore di accesso all'assembly come parte della dichiarazione.

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