SysAllocStringByteLen 函数 (oleauto.h)

采用 ANSI 字符串作为输入,并返回包含 ANSI 字符串的 BSTR。 不执行任何 ANSI 到 Unicode 的转换。

语法

BSTR SysAllocStringByteLen(
  [in, optional] LPCSTR psz,
  [in]           UINT   len
);

parameters

[in, optional] psz

要复制的字符串,或 NULL 以保持字符串未初始化。

[in] len

要复制的字节数。 之后将放置一个空字符,分配总计 的 len 加上 OLECHAR 字节的大小。

返回值

字符串的副本;如果内存不足,则为 NULL。

注解

提供此函数用于创建包含二进制数据的 BSTR。 仅当此类 BSTR 不会从 ANSI 转换为 Unicode 时,才能使用此类 BSTR,反之亦然。

例如,请勿在 32 位 Windows 系统上运行的 16 位和 32 位应用程序之间使用这些 BSTR。 OLE 16 位到 32 位 (和 32 位到 16 位) 互操作性层将转换 BSTR 并损坏二进制数据。 传递二进制数据的首选方法是使用VT_UI1的 SAFEARRAY,OLE 不会转换它。

如果 psz 为 Null,则会分配请求长度的字符串,但不进行初始化。 字符串 psz 可以包含嵌入的 null 字符,并且不需要以 Null 结尾。 稍后使用 SysFreeString 释放返回的字符串。

要求

   
目标平台 Windows
标头 oleauto.h
Library OleAut32.lib
DLL OleAut32.dll

请参阅

字符串操作函数