Marshalling Cordas
A plataforma invoca copia parâmetros de cadeia de caracteres, convertendo-os do formato .NET Framework (Unicode) para o formato não gerenciado (ANSI), se necessário. Como 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 opções de empacotamento para cadeias de caracteres, descreve seu uso e fornece um link para o exemplo correspondente do .NET Framework.
String | Description | Exemplo |
---|---|---|
Por valor. | Passa cadeias de caracteres como parâmetros In. | MsgBox |
Como resultado. | Retorna cadeias de caracteres de código não gerenciado. | Cordas |
Por referência. | Passa cadeias de caracteres como parâmetros de entrada/saída usando StringBuilder. | Buffers |
Numa estrutura por valor. | Passa cadeias de caracteres em uma estrutura que é um parâmetro In. | Estruturas |
Numa 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. | Cordas |
Numa 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 incorporado. | 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 incorporado. | 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 é passada por valor. | Matrizes |
Consulte também
Colabore connosco no GitHub
A origem deste conteúdo pode ser encontrada no GitHub, onde também pode criar e rever problemas e pedidos Pull. Para mais informações, consulte o nosso guia do contribuidor.