HSTRING

Windows 运行时字符串的句柄。

typedef HSTRING__* HSTRING;

备注

使用 HSTRING 表示Windows 运行时中的不可变字符串。

JavaScript 和其他语言(如 C#和 Microsoft Visual Basic)可以使用使用 HSTRING 表示的字符串。 下表显示了 HSTRING 在其他语言中的表示方式。

编程语言 字符串表示形式
C++/WinRT winrt::hstring
Visual C++ 组件扩展 (C++/CX) Platform::String
Javascript 字符串对象
.NET Framework System.String 类

 

HSTRING 句柄是标准句柄类型。 从语义上讲,包含 NULL 值的HSTRING 表示空字符串,该字符串由零个内容字符和一个终止 NULL 字符组成。 通过 WindowsCreateString 创建包含零个字符的字符串将生成句柄值 NULL。 调用值为 NULL的 WindowsGetStringRawBuffer 时,将返回指向空字符串的指针,后跟 NUL 终止字符。 不存在表示未初始化的 HSTRING 的非重复值。

调用 WindowsCreateString 函数以创建新的 HSTRING,并调用 WindowsDeleteString 函数以释放对后备字符串内存的引用。 调用 WindowsCreateStringReference 函数以创建字符串引用,也称为 快速传递字符串

通过调用 WindowsDuplicateString 函数复制 HSTRING

通过调用 WindowsConcatString 函数连接两个字符串。

通过调用 WindowsGetStringRawBuffer 函数访问后备字符串内存。

HSTRING 可以存储和使用嵌入 的 NUL 字符。 在使用任何可能产生意外结果的函数之前,使用 WindowsStringHasEmbeddedNull 函数为嵌入的 NUL 字符检查。 例如,大多数 Windows 函数使用 LPCWSTR 作为输入参数,并且仅计算字符串的长度,直到遇到第一个 NUL

支持字符串必须保持不可变且以 null 结尾。 当调用代码使用 WindowsCreateStringReference 函数创建字符串引用时,包含支持字符串表示形式的内存由调用方拥有。 Windows 运行时依赖于原始字符串的内容保持不变。 将字符串引用传递到Windows 运行时时,调用方负责确保字符串的内容不变,并在调用期间终止 NUL。 调用返回时,Windows 运行时释放对字符串引用的所有引用。

收到 HSTRING 作为 out 参数时,最好在使用完句柄后将其设置为 NULL

调用 WindowsPreallocateStringBuffer 函数以分配可用于创建不可变 HSTRING 的可变字符串缓冲区。 填充完缓冲区后,调用 WindowsPromoteStringBuffer 函数来创建 HSTRING。 这种两阶段构造模式可实现类似于“字符串生成器”的功能。

要求

要求
最低受支持的客户端
Windows 8
最低受支持的服务器
Windows Server 2012
标头
Hstring.h

另请参阅

WindowsCreateString

WindowsDeleteString

WindowsDuplicateString

WindowsPreallocateStringBuffer