Partilhar via


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.

Retorno de chamada

HandleRef

Usa o HandleRef estrutura para evitar que lixo coleção.

HandleRef

LPARAM

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

GCHandle

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.

ActiveDir

void *

Chama uma função que tenha void * sistema autônomo um parâmetro.

Void

Consulte também

Conceitos

Tipos de dados de invocação de plataforma

marshaling de strings

marshaling de classes, estruturas e uniões

marshaling de matrizes de tipos

Outros recursos

marshaling de dados com invocação de plataforma