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();
}