Compartilhar via


Diversos exemplos de empacotamento

Fatores como, por exemplo, coleta de lixo e threading podem afetar o comportamento do empacotador de interoperabilidade. Além disso, sutis de diferenças nos modelos de programação e o tipo podem tornar passando dados para uma biblioteca não gerenciada confusa. Esta seção fornece um conjunto de exemplos que resolvem algumas dessas diferenças.

A tabela a seguir lista as opções de empacotamento para vários tipos de itens, descreve seu uso e fornece um link para a amostra correspondente.

Tipo de item

Descrição

Exemplo

Ponteiro de função

Passa um delegado para uma função não gerenciada que espera um ponteiro de função.

Retorno de chamada

HandleRef

Usa a HandleRef estrutura para evitar a coleta de lixo.

HandleRef

LPARAM

Usa a GCHandle estrutura para passar um objeto gerenciado para uma função não gerenciada que espera um LPARAM tipo.

GCHandle

Single-threaded apartment (STA) / multithreaded apartment (MTA)

Altera as configurações padrão do apartamento, quando uma função não gerenciada chama CoInitialize.

ActiveDir

void *

Chama uma função que tem void * como um parâmetro.

Void

Consulte também

Conceitos

Tipos de dados de invocação de plataforma

Empacotamento de Strings

O empacotamento de Classes, estruturas e uniões

Matrizes de tipos de empacotamento.

Outros recursos

Empacotamento de dados com a plataforma chamar