Cadeias de caracteres de marshalling

A invocação de plataforma copia parâmetros de cadeia de caracteres, convertendo-os do formato do .NET Framework (Unicode) para o formato não gerenciado (ANSI), se necessário. Já que as cadeias de caracteres gerenciadas são imutáveis, a invocação de plataforma não as copia de volta da memória não gerenciada para a memória gerenciada quando a função retorna.

A tabela a seguir lista as opções de marshaling para cadeias de caracteres, descreve o uso delas e fornece um link para a amostra de .NET Framework correspondente.

Cadeia de caracteres Descrição Amostra
Por valor. Passa cadeias de caracteres como parâmetros In. MsgBox
Como resultado. Retorna cadeias de caracteres de código não gerenciado. Cadeias de caracteres
Por referência. Passa cadeias de caracteres como parâmetros In/Out usando StringBuilder. Buffers
Em uma estrutura por valor. Passa cadeias de caracteres em uma estrutura que é um parâmetro In. Estruturas
Em uma estrutura por referência (char*). Passa cadeias de caracteres em uma estrutura que é um parâmetro In/Out. A função não gerenciada espera um ponteiro para um buffer de caracteres e o tamanho do buffer é um membro da estrutura. Cadeias de caracteres
Em uma estrutura por referência (char[]). Passa cadeias de caracteres em uma estrutura que é um parâmetro In/Out. A função não gerenciada espera um buffer de caracteres inserido. OSInfo
Em uma classe por valor (char*). Passa cadeias de caracteres em uma classe (uma classe é um parâmetro In/Out). A função não gerenciada espera um ponteiro para um buffer de caracteres. OpenFileDlg
Em uma classe por valor (char[]). Passa cadeias de caracteres em uma classe (uma classe é um parâmetro In/Out). A função não gerenciada espera um buffer de caracteres inserido. OSInfo
Como uma matriz de cadeias de caracteres por valor. Cria uma matriz de cadeias de caracteres que é passada por valor. matrizes
Como uma matriz de estruturas que contêm cadeias de caracteres por valor. Cria uma matriz de estruturas que contêm cadeias de caracteres e a matriz é transmitida por valor. matrizes

Confira também