Marshal.StringToCoTaskMemUni(String) Método

Definição

Copia o conteúdo de um String gerenciado para um bloco de memória alocado do alocador de tarefas COM não gerenciado.

[System.Security.SecurityCritical]
public static IntPtr StringToCoTaskMemUni (string s);
public static IntPtr StringToCoTaskMemUni (string? s);
public static IntPtr StringToCoTaskMemUni (string s);

Parâmetros

s
String

Uma cadeia de caracteres gerenciada a ser copiada.

Retornos

IntPtr

Um inteiro que representa um ponteiro para o bloco de memória alocado na cadeia de caracteres ou 0, se s for null.

Atributos

Exceções

O parâmetro s excede o tamanho máximo permitido pelo sistema operacional.

Memória insuficiente.

Comentários

StringToCoTaskMemUni é útil para marshaling personalizado ou para uso ao misturar código gerenciado e não gerenciado. Como esse método aloca a memória não gerenciada necessária para uma cadeia de caracteres, sempre libere a memória chamando Marshal.FreeCoTaskMem. Esse método fornece a funcionalidade oposta de Marshal.PtrToStringUni. Os caracteres da cadeia de caracteres são copiados como caracteres Unicode.

Essa API reflete a definição do Windows de Unicode, que é uma codificação UTF-16 de 2 bytes. Em muitas plataformas não Windows, o wchar_t tipo de dados é de 4 bytes, não de 2 bytes. Consulte o compilador para confirmar se wchar_t pode ser usado ou char16_t deve ser usado.

Aplica-se a

Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Confira também