Partilhar via


gerenciado, não gerenciado

Habilita o controle do nível da função para criar funções como gerenciadas ou o não gerenciadas.

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

Comentários

A opção do compilador /clr fornece controle do nível do módulo para compilar funções ou como gerenciada ou não gerenciada.

Uma função não gerenciada será criada para a plataforma nativa e a execução dessa parte do programa será passada para a plataforma nativa pelo Common Language Runtime.

As funções são criadas como gerenciadas por padrão quando /clr é usado.

Ao aplicar esses pragmas:

  • Adicione o pragma que precede uma função mas não em um corpo da função.

  • Adicione o pragma após #include instruções. Não use esses pragmas antes #include instruções.

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

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

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 a palavra-chave __Pragma