SysAllocStringByteLen 函式 (oleauto.h)

接受 ANSI 字串做為輸入,並傳回包含 ANSI 字串的 BSTR。 不會執行任何 ANSI 到 Unicode 轉譯。

語法

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

參數

[in, optional] psz

要複製的字串,或要保留字元串未初始化的 Null。

[in] len

要複製的位元組數目。 之後會放置 Null 字元,並配置 總計 len 加上 OLECHAR 位元組的大小。

傳回值

字串的複本,如果記憶體不足而無法完成作業,則為 Null。

備註

提供此函式來建立包含二進位資料的 BSTR。 只有在不會從 ANSI 轉譯為 Unicode 的情況下,才能使用這種類型的 BSTR,反之亦然。

例如,請勿在 16 位與 32 位 Windows 系統上執行的 32 位應用程式之間使用這些 BSTR。 OLE 16 位到 32 位 (和 32 位到 16 位) 互通性層會轉譯 BSTR 並損毀二進位資料。 傳遞二進位資料的慣用方法是使用VT_UI1的 SAFEARRAY,這不會由 OLE 轉譯。

如果 psz 為 Null,則會配置所要求長度的字串,但不會初始化。 字串 psz 可以包含內嵌的 Null 字元,而且不需要以 Null 結尾。 稍後使用 SysFreeString釋放傳回的字串。

需求

   
目標平台 Windows
標頭 oleauto.h
程式庫 OleAut32.lib
Dll OleAut32.dll

另請參閱

字串操作函式