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 |