Marshal.StringToCoTaskMemUni(String) Método

Definição

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

public:
 static IntPtr StringToCoTaskMemUni(System::String ^ s);
[System.Security.SecurityCritical]
public static IntPtr StringToCoTaskMemUni(string s);
public static IntPtr StringToCoTaskMemUni(string s);
[<System.Security.SecurityCritical>]
static member StringToCoTaskMemUni : string -> nativeint
static member StringToCoTaskMemUni : string -> nativeint
Public Shared Function StringToCoTaskMemUni (s As String) As IntPtr

Parâmetros

s
String

Uma sequência gerida para ser copiada.

Devoluções

IntPtr

nativeint

Um inteiro representando um ponteiro para o bloco de memória alocado para a cadeia, ou 0 se s for null.

Atributos

Exceções

O s parâmetro excede o comprimento máximo permitido pelo sistema operativo.

Há memória insuficiente disponível.

Observações

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

Esta 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 tipo de dado wchar_t é de 4 bytes, não de 2 bytes. Consulte o seu compilador para confirmar se wchar_t pode ser usado ou char16_t se deve ser usado em vez disso.

Aplica-se a

Ver também