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. |
|
Usa a HandleRef estrutura para evitar a coleta de lixo. |
||
LPARAM |
Usa a GCHandle estrutura para passar um objeto gerenciado para uma função não gerenciada que espera um LPARAM tipo. |
|
Single-threaded apartment (STA) / multithreaded apartment (MTA) |
Altera as configurações padrão do apartamento, quando uma função não gerenciada chama CoInitialize. |
|
void * |
Chama uma função que tem void * como um parâmetro. |
Consulte também
Conceitos
Tipos de dados de invocação de plataforma
O empacotamento de Classes, estruturas e uniões
Matrizes de tipos de empacotamento.