Compartilhar via


Lista de verificação de atualização de gerenciado Extensions para C++ sintaxe

For Visual C++ 2005O visual C++ inclui recursos para o direcionamento de máquinas virtual com coleta de lixo, sistema autônomo o .NET estrutura. For Visual C++ 2008, o suporte de gerenciado Extensions para C++ está obsoleto e podem ser removidos inteiramente em uma versão futura.

Código usando extensões gerenciadas do C++ ainda pode ser compilado com /clr:oldSyntax. See o CLR (ComComummon Idioma Tempo de execução ComComumpilation) Para obter mais informações para obter mais informações sobre como usar a nova sintaxe, consulte:

Este tópico lista as diferenças sintáticas entre gerenciado Extensions para C++ e a nova sintaxe do Visual C++.

Para atualizar gerenciado Extensions para código C++

  • Remova # using <mscorlib.dll>.(Este assembly é referenciado agora por padrão).

  • Substitua __gc class por ref class.

  • Substitua __gc struct por ref struct.

  • Substitua __value class por value class.

  • Substitua __value struct por value struct.

  • Remova construtores de classes de valor.(Construtores padrão para tipos de valor são permitidos no gerenciado Extensions para C++, mas impede a natureza do CLR que eles sendo chamado confiável, para que esse recurso foi removido).

Para obter mais informações sobre os tipos de referência e valor, consulte Classes and Estruturas (Gerenciado).

  • Substitua __gc __interface por interface class.

Para obter mais informações sobre a palavra-chave interface, consulte classe interface.

  • Substituir __abstract com abstract, e mova-o após o nome de classe. Para obter mais informações, consulte abstrato (Visual C++).

  • Substituir __sealed com sealed, e mova-o após o nome de classe. Para obter mais informações, consulte autenticada.

  • Substituir __property com   property, agrupar get e o conjunto de métodos em um bloco de propriedade única e remova o sufixo de nome/inferior à direita desses acessadores. Propriedades simples, os acessadores necessário não ser definidos explicitamente.A sintaxe de propriedades indexadas requer pares de colchetes após o tipo de propriedade.Para obter mais informações, consulte, Como: Use Propriedades Simples e Como: Use Indexed Propriedades.

  • Substitua __Event por evento (Visual C++).

  • Substitua __value enum por classe enum.

  • Substituir ponteiros para os tipos de referência seguido (definida com __gc*) com ^. Para obter mais informações, consulte ^ (Handle to Objeto on Heap Gerenciado).

  • Substituir os ponteiros para os tipos de valores que possivelmente residem na pilha de lixo coletado com interior_ptr.

  • substituir ponteiros declarado com __pin com instâncias do pin_ptr, a menos que um objeto inteiro está sendo fixado, em que uso de maiúsculas interior_ptre, em seguida, use pin_ptr o ponteiro de interiores. For Visual C++ 2005, esse modelo é definido na CLI namespace.

  • Substitua new por gcnew.

  • Substituir 0 ou nulo com nullptr Quando usado para indicar que um ponteiro ou identificador em heap coletados do lixo não indica um objeto e ao usar comparações verificar ponteiros e alças.

  • atualização coleta de lixo matrizes declaradas com __gc[] Para usar o matriz (Visual C++) Digite. For Visual C++ 2005, esse modelo é definido na CLI namespace.

  • Remova todas as instâncias de __box.Para obter mais informações, consulte Boxing IMPLICIT.

  • Remover o prefixo "S" da seqüência de caracteres literais (o compilador agora determina se uma cadeia de caracteres é literal com base no contexto em que é usado.)

  • Substitua a declaração explícita e o uso de operadores sobrecarregados necessário em gerenciado Extensions para C++ (por exemplo, op_Addition, op_Subtraction) com a sintaxe do C++ tradicional. Para obter mais informações, consulte User-Defined operadores e Operador de sobrecarga.

  • Atualizar os operadores de conversão (que usam op_Implicit e op_Explicit no gerenciado Extensions para obter a sintaxe do C++.) Para obter mais informações, consulte User-Defined Conversions.

  • Substitua __typeof por typeID.

  • Substitua __try_cast por safe_cast.For Visual C++ 2005, esse modelo é definido na CLI namespace.

  • Se foram assinar seu assembly (também conhecido sistema autônomo concedendo seu assembly um nome forte) com atributos de assinatura de assembly do CLR, deverá remover esses atributos do seu código e, em vez disso, use sistema autônomo opções de vinculador assinatura de assembly.Para obter mais informações, consulte Assemblies com Nome Forte (Assinatura de Assembly).

Consulte também

Conceitos

Misto (nativo e gerenciado) assemblies

Novo Features Idioma in Visual C++