Compartilhar via


marshaling de classes, estruturas e uniões

Classes e estruturas assemelham-se no .NET estrutura.Ambos podem ter campos, propriedades e eventos.They can also have static and nonstatic methods.Uma diferença notável é que as estruturas são tipos de valor e as classes são tipos de referência.

A tabela a seguir lista as opções de marshaling para classes, estruturas e uniões; descreve seu uso; e fornece um link para o correspondente invocação de plataforma amostra.

Type (Tipo)

Descrição

Exemplo

Classe de valor.

Passa uma classe com membros de inteiro sistema autônomo um parâmetro de entrada/saída, sistema autônomo o caso gerenciado.

SysTime

Estrutura por valor.

Passar estruturas sistema autônomo em parâmetros.

Estruturas

Estrutura por referência.

Passar estruturas sistema autônomo in/out parâmetros.

OSInfo

Estrutura com estruturas aninhadas (nivelados).

Passa uma classe que represente uma estrutura com estruturas aninhadas na função não gerenciada.A estrutura é achatada para uma estrutura grande no protótipo gerenciado.

FindFile

Estrutura com estruturas aninhadas (não nivelados).

Passa uma estrutura com uma estrutura incorporada.

Estruturas

Estrutura com um ponteiro para outro estrutura.

Passa uma estrutura que contém um ponteiro para uma segunda estrutura sistema autônomo um membro.

Estruturas

Matriz de estruturas com números inteiros por valor.

Passa uma matriz de estruturas que contêm apenas números inteiros sistema autônomo um parâmetro de entrada/saída.Membros da matriz podem ser alterados.

Matrizes

Matriz de estruturas com números inteiros e seqüências de caracteres por referência.

Passa uma matriz de estruturas que contêm números inteiros e seqüências de caracteres sistema autônomo um parâmetro de saída.A função chamada aloca memória para a matriz.

OutArrayOfStructs

Uniões com tipos de valor.

Passa uniões com tipos de valor (inteiro e duplo).

Uniões

Uniões com tipos mistos.

Passa uniões com tipos mistos (inteiro e string).

Uniões

Valores nulo na estrutura.

Passa uma referência nula (Nada no Visual Basic) em vez de uma referência a um tipo de valor.

HandleRef

Consulte também

Conceitos

Tipos de dados de invocação de plataforma

marshaling de strings

marshaling de matrizes de tipos

Diversos exemplos de marshaling

Outros recursos

marshaling de dados com invocação de plataforma