Diversos exemplos de marshaling
Fatores sistema autônomo lixo coleção e threading pode afetar o comportamento do interop marshaler.Além disso, sutis 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 abordam algumas dessas diferenças.
A tabela a seguir lista as opções de marshaling 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 o HandleRef estrutura para evitar que lixo coleção. |
||
LPARAM |
Usa o GCHandle estrutura para passar um objeto gerenciado para uma função não gerenciada que espera um LPARAM tipo. |
|
Single-threaded apartment (STA) / multithread apartment (MTA) |
Altera as configurações de apartment padrão quando uma função não gerenciada chama Em coInitialize. |
|
void * |
Chama uma função que tenha void * sistema autônomo um parâmetro. |
Consulte também
Conceitos
Tipos de dados de invocação de plataforma
marshaling de classes, estruturas e uniões
marshaling de matrizes de tipos