Marshal.StringToCoTaskMemUni(String) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将托管 String 内容复制到从非托管 COM 任务分配器分配的内存块。
public:
static IntPtr StringToCoTaskMemUni(System::String ^ s);
[System.Security.SecurityCritical]
public static IntPtr StringToCoTaskMemUni(string s);
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
参数
- s
- String
要复制的托管字符串。
返回
nativeint
一个整数,表示指向为字符串分配的内存块的指针,如果为 0,则为 null0。
- 属性
例外
该 s 参数超出了操作系统允许的最大长度。
内存不足。
注解
StringToCoTaskMemUni 可用于自定义封送处理或在混合托管和非托管代码时使用。 由于此方法分配字符串所需的非托管内存,因此始终通过调用 Marshal.FreeCoTaskMem释放内存。 此方法提供了相反的功能 Marshal.PtrToStringUni。 字符串的字符将复制为 Unicode 字符。
此 API 反映了 Unicode 的Windows定义,这是 UTF-16 2 字节编码。 在许多非Windows平台上,wchar_t数据类型为 4 字节,而不是 2 字节。 请查阅编译器以确认是否可以 wchar_t 使用还是 char16_t 应改用。