Delen via


Compilerfout C3381

'id': aanduidingen voor assemblytoegang zijn alleen beschikbaar in code die is gecompileerd met een /clr-optie

Opmerkingen

Een type is gedeclareerd of gedefinieerd met behulp van een toegangsaanduiding, die alleen is toegestaan in code die is gecompileerd met behulp van /clr.

Deze fout kan het gevolg zijn van een verkeerd geplaatst public, protectedof private trefwoord of een ontbrekende dubbele punt (:) na een toegangsaanduiding binnen een class of struct.

In C++/CLI kunnen systeemeigen typen zichtbaar zijn buiten een assembly, maar u kunt alleen assemblytoegang opgeven voor systeemeigen typen in een /clr compilatie. Zie Zichtbaarheid van type en /clr (Common Language Runtime-compilatie) voor meer informatie.

Example

In het volgende voorbeeld wordt C3381 gegenereerd. Als u dit wilt oplossen, verwijdert u eerst de public aanduiding uit de class A definitie of compileert u deze met behulp van de /clr optie. Voeg daarna een dubbele punt toe na private om toegang voor class B {} b; specificeren. Dat komt doordat een geneste klasse geen toegangsaanduiding voor assembly's kan hebben als onderdeel van de declaratie.

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