Partilhar via


managed, unmanaged

Habilite o controle de nível de função para funções como gerenciado ou de compilação.

#pragma managed
#pragma unmanaged
#pragma managed([push,] on | off)
#pragma managed(pop)

Comentários

O /clr opção de compilador fornece controle de nível de módulo para funções como gerenciado ou de compilação.

Uma função não gerenciada será compilada para a plataforma nativa e execução da parte do programa será passada para a plataforma nativa pelo common language runtime.

Funções são compiladas como gerenciado por padrão quando /clr é usado.

Use as seguintes diretrizes ao aplicar esses pragmas:

  • Adicionar o pragma precede uma função, mas não dentro de um corpo da função.

  • Adicionar o pragma após #include instruções (não use esses pragmas antes de #include instruções).

O compilador ignora a managed e unmanaged pragmas se /clr não é usado na compilação.

Quando uma função do modelo é instanciada, o estado de pragma no momento da definição do modelo determina se ele é gerenciado ou não.

Para obter mais informações, consulte Inicialização de Assemblies mistos.

Exemplo

// pragma_directives_managed_unmanaged.cpp
// compile with: /clr
#include <stdio.h>

// func1 is managed
void func1() {
   System::Console::WriteLine("In managed function.");
}

// #pragma unmanaged
// push managed state on to stack and set unmanaged state
#pragma managed(push, off)

// func2 is unmanaged
void func2() {
   printf("In unmanaged function.\n");
}

// #pragma managed
#pragma managed(pop)

// main is managed
int main() {
   func1();
   func2();
}
  
  

Consulte também

Referência

Diretivas pragma e __Pragma palavra-chave