winrt::hstring 結構 (C++/WinRT)
代表文字字串之 UTF-16 Unicode 字元的循序集合。 如需 winrt::hstring 的詳細資訊,請參閱 C++/WinRT 中的字串處理。
winrt::hstring 類型會在類似 std::wstring 的介面後面封裝 HSTRING。 HSTRING 是 Windows 執行階段 字串的句柄。 如需如何將 HSTRING 設定為 winrt::hstring 以及如何從 winrt::hstring 重新嘗試 HSTRING 的相關信息,請參閱與 ABI 的 HSTRING 互操作。
Syntax
struct hstring
規格需求
最低支援的 SDK:Windows SDK 10.0.17134.0 版 (Windows 10 版本 1803)
命名空間: winrt
標頭: 預設包含 %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (預設包含)
成員類型別名
別名名稱 | 類型 |
---|---|
hstring::value_type | wchar_t的同義字。 |
hstring::size_type | uint32_t的同義字。 |
hstring::const_reference | hstring::value_type const&同義字。 |
hstring::const_pointer | hstring::value_type const* 的同義字。 |
hstring::const_iterator | hstring::const_pointer 的同義字。 |
hstring::const_reverse_iterator | std::reverse_iterator<hstring::const_iterator> 的同義字。 |
建構函式
建構函式 | 描述 |
---|---|
hstring::hstring 建構函式 | 使用輸入字串數據的複本,初始化 hstring 結構的新實例。 |
成員函數
函式 | 描述 |
---|---|
hstring::back 函式 | 傳回 hstring 對象中最後一個字元的參考。 |
hstring::begin 函式 | 將 const 反覆運算器傳回至 hstring 物件中的第一個字元。 |
hstring::c_str 函式 | 傳回 hstring 物件中字元之基礎 Null 終止 C 樣式字串的指標;未建立任何復本。 |
hstring::cbegin 函式 | 將 const 反覆運算器傳回至 hstring 物件中的第一個字元。 |
hstring::cend 函式 | 將常數反覆運算器傳回至結尾以外的一個, (超過 hstring 物件) 中最後一個字元的一個字元。 |
hstring::clear 函式 | 將 hstring 物件設定為空白。 |
hstring::crbegin 函式 | 將 const 反轉反覆運算器傳回至結尾以外的一個, (一個超出 hstring 物件) 中最後一個字元的結尾。 |
hstring::crend 函式 | 將 const 反向反覆運算器傳回至 hstring 物件中的第一個字元。 |
hstring::d ata 函式 | 傳回 hstring 物件中字元的 Null 終止 C 樣式字串版本。 |
hstring::empty 函式 | 傳回值,指出 hstring 物件是否空白。 |
hstring::end 函式 | 將常數反覆運算器傳回至結尾以外的一個, (超過 hstring 物件) 中最後一個字元的一個字元。 |
hstring::front 函式 | 傳回 hstring 物件中第一個字元的參考。 |
hstring::rbegin 函式 | 將 const 反轉反覆運算器傳回至結尾以外的一個, (一個超出 hstring 物件) 中最後一個字元的結尾。 |
hstring::rend 函式 | 將 const 反向反覆運算器傳回至 hstring 物件中的第一個字元。 |
hstring::size 函式 | 傳回 hstring 物件中的字元數。 |
成員運算子
運算子 | 描述 |
---|---|
hstring::operator std::wstring_view | 將 hstring 物件轉換為 std::wstring_view。 |
hstring::operator[] (下標運算符) ) | 傳回 在 hstring 物件內指定位置之字元的參考。 |
hstring::operator= (指派運算符) | 將值指派給 hstring 物件。 |
免費函式
函式 | 描述 |
---|---|
attach_abi 函式 | 將 hstring 物件附加至 Windows 執行階段 字串的句柄。 |
copy_from_abi 函式 | 從句柄複製到 Windows 執行階段 字串的 hstring 物件。 清除 hstring、複製 參數,並開始管理句柄。 |
copy_to_abi 函式 | 從 hstring 物件複製到 Windows 執行階段 字串的句柄。 |
detach_abi 函式 | 將 hstring 物件與其句柄中斷鏈接,或許可將它傳回給呼叫端。 |
to_hstring 函式 | 將輸入值轉換為 winrt::hstring ,其中包含值的字串表示。 |
免費運算子
運算子 | 描述 |
---|---|
operator!= (不等比較運算符) | 傳回值,指出兩個參數是否不相等。 |
operator+ (串連運算子) | 傳回由將兩個參數串連在一起所產生的新 hstring 物件。 |
運算子< (小於運算子) | 傳回值,指出第一個參數是否小於第二個參數。 |
operator<= (小於或等於運算符) | 傳回值,指出第一個參數是否小於或等於第二個參數。 |
operator== (等號比較運算符) | 傳回值,指出兩個參數是否彼此相等。 |
運算子> (大於運算子) | 傳回值,指出第一個參數是否大於第二個參數。 |
operator>= (大於或等於運算符) | 傳回值,指出第一個參數是否大於或等於第二個參數。 |
迭代器
hstring 是一個範圍,而且該範圍是由 hstring::begin 和 hstring::end 成員函式所定義,每個函式都會傳回 const 迭代器 (,如同 hstring::cbegin 和 hstring::cend) 一樣。 因此,您可以使用範圍型for
語句或 std::for_each 範本函式,列舉 hstring 物件中的字元。
#include <iostream>
using namespace winrt;
...
void Iterators(hstring const& theHstring)
{
for (auto const& element : theHstring)
{
std::wcout << element;
}
std::for_each(theHstring.cbegin(), theHstring.cend(), [](T const& element) { std::wcout << element; });
}
hstring::hstring 建構函式
使用輸入字串數據的複本,初始化 hstring 結構的新實例。
語法
hstring() noexcept;
hstring(winrt::hstring const& h);
explicit hstring(std::wstring_view const& v);
hstring(wchar_t const* c);
hstring(wchar_t const* c, uint32_t s);
參數
h
初始化 hstring 物件的 hstring 值。
v
初始化 hstring 物件的 std::wstring_view 值。
c
初始化 hstring 物件的常數數位wchar_t指標。
s
數位,指定 hstring 物件的固定大小。
範例
using namespace winrt;
...
void Constructors(
hstring const& theHstring,
std::wstring_view const& theWstringView,
wchar_t const* wideLiteral,
std::wstring const& wideString)
{
// hstring() noexcept
hstring fromDefault{};
// hstring(hstring const& h)
hstring fromHstring{ theHstring };
// explicit hstring(std::wstring_view const& value)
hstring fromWstringView{ theWstringView };
// hstring(wchar_t const* value)
hstring fromWideLiteral{ wideLiteral };
hstring fromWideString{ wideString.c_str() };
// hstring(wchar_t const* value, uint32_t size)
hstring fromWideLiteralWithSize{ wideLiteral, 256 };
hstring fromWideStringWithSize{ wideString.c_str(), 256 };
}
hstring::back 函式
傳回 hstring 對象中最後一個字元的參考。
Syntax
wchar_t const& back() const noexcept;
傳回值
hstring 對象中最後一個字元的參考。
hstring::begin 函式
將 const 反覆運算器傳回至 hstring 物件中的第一個字元。 請參閱 反覆運算器。
Syntax
wchar_t const* begin() const noexcept;
傳回值
hstring 物件中第一個字元的常數反覆運算器。
hstring::c_str 函式
傳回 hstring 物件中字元之基礎 Null 終止 C 樣式字串的指標;未建立任何復本。
Syntax
wchar_t const* c_str() const noexcept;
傳回值
hstring 物件中字元之基礎 Null 終止 C 樣式字串的指標;未建立任何復本。
範例
#include <iostream>
using namespace winrt;
...
void PrintHstring(hstring const& theHstring)
{
// You can get a standard wide string from an hstring.
std::wcout << theHstring.c_str() << std::endl;
}
hstring::cbegin 函式
將 const 反覆運算器傳回至 hstring 物件中的第一個字元。 請參閱 反覆運算器。
Syntax
wchar_t const* cbegin() const noexcept;
傳回值
hstring 物件中第一個字元的常數反覆運算器。
hstring::cend 函式
將常數反覆運算器傳回至結尾以外的一個, (超過 hstring 物件) 中最後一個字元的一個字元。 請參閱 反覆運算器。
Syntax
wchar_t const* cend() const noexcept;
傳回值
常數反覆運算器,指向 () hstring 對象中最後一個字元以外的反覆運算器。
hstring::clear 函式
將 hstring 物件設定為空白。
Syntax
void clear() noexcept;
hstring::crbegin 函式
將 const 反轉反覆運算器傳回至結尾以外的一個, (一個超出 hstring 物件) 中最後一個字元的結尾。
Syntax
std::reverse_iterator<wchar_t const*> crbegin() const noexcept;
傳回值
const 反轉反覆運算器,指向結尾 () hstring 對象中最後一個字元以外的反覆運算器。
hstring::crend 函式
將 const 反向反覆運算器傳回至 hstring 物件中的第一個字元。
Syntax
std::reverse_iterator<wchar_t const*> crend() const noexcept;
傳回值
hstring 物件中第一個字元的 const 反向反覆運算器。
hstring::d ata 函式
傳回 hstring 物件中字元的 Null 終止 C 樣式字串版本。
Syntax
wchar_t const* data() const noexcept;
傳回值
hstring 物件中字元的 Null 終止 C 樣式字串版本。
範例
#include <iostream>
using namespace winrt;
...
void PrintHstring(hstring const& theHstring)
{
// You can get a standard wide string from an hstring.
std::wcout << theHstring.data() << std::endl;
}
hstring::empty 函式
傳回值,指出 hstring 物件是否空白。
Syntax
bool empty() const noexcept;
傳回值
true
如果 hstring 物件是空的,則為 ,否則 false
為 。
hstring::end 函式
將常數反覆運算器傳回至結尾以外的一個, (超過 hstring 物件) 中最後一個字元的一個字元。 請參閱 反覆運算器。
Syntax
wchar_t const* end() const noexcept;
傳回值
常數反覆運算器,指向 () hstring 對象中最後一個字元以外的反覆運算器。
hstring::front 函式
傳回 hstring 物件中第一個字元的參考。
Syntax
wchar_t const& front() const noexcept;
傳回值
hstring 物件中第一個字元的參考。
hstring::operator std::wstring_view
將 hstring 物件轉換為 std::wstring_view。
Syntax
operator std::wstring_view() const noexcept;
傳回值
轉換成 std::wstring_view 的 hstring 物件。
範例
using namespace winrt;
...
Uri contosoUri{ L"https://www.contoso.com" };
Uri awUri{ L"https://www.adventure-works.com" };
// Uri::Domain() is of type hstring. But we can use hstring's conversion operator to std::wstring_view.
std::wstring domainWstring{ contosoUri.Domain() }; // L"contoso.com"
domainWstring = awUri.Domain(); // L"https://www.adventure-works.com"
hstring::operator[] (下標運算符)
傳回 在 hstring 物件內指定位置之字元的參考。
語法
wchar_t const& operator[](uint32_t pos) const noexcept;
參數
pos
以零起始的字元位置或索引。
傳回值
在 hstring 物件內指定位置的字元參考。
hstring::operator= (指派運算符)
將值指派給 hstring 物件。
語法
winrt::hstring& operator=(winrt::hstring const& h);
winrt::hstring& operator=(std::wstring_view const& v);
參數
h
要指派給 hstring 物件的 hstring 值。
v
要指派給 hstring 物件的 std::wstring_view 值。
傳回值
hstring 對象的參考。
hstring::rbegin 函式
將 const 反向反覆運算器傳回至 (一個超出 hstring 物件) 中最後一個字元的結尾。
Syntax
std::reverse_iterator<wchar_t const*> rbegin() const noexcept;
傳回值
常數反轉反覆運算器,指向 () hstring 對象中最後一個字元以外的一個字元。
hstring::rend 函式
傳回常數反向反覆運算器至 hstring 物件中的第一個字元。
Syntax
std::reverse_iterator<wchar_t const*> rend() const noexcept;
傳回值
常數反向反覆運算器,指向 hstring 物件中的第一個字元。
hstring::size 函式
傳回 hstring 物件中的字元數。
Syntax
uint32_t size() const noexcept;
傳回值
uint32_t,其中包含 hstring 物件中的字元數。
attach_abi 函式
將 hstring 物件附加至 Windows 執行階段 字串的句柄。
語法
void attach_abi(winrt::hstring& object, HSTRING value) noexcept;
參數
object
要操作 的 hstring 物件。
value
Windows 執行階段 字串的句柄。
copy_from_abi 函式
從句柄複製到 Windows 執行階段 字串的 hstring 物件。 清除 hstring、複製 參數,並開始管理句柄。
語法
void copy_from_abi(winrt::hstring& object, HSTRING value);
參數
object
要操作 的 hstring 物件。
value
Windows 執行階段 字串的句柄。
copy_to_abi 函式
從 hstring 物件複製到 Windows 執行階段 字串的句柄。
語法
void copy_to_abi(winrt::hstring const& object, HSTRING& value);
參數
object
要操作 的 hstring 物件。
value
句柄參考,用來複製 hstring 的句柄。
detach_abi 函式
將 hstring 物件與其句柄中斷鏈接,或許可將它傳回給呼叫端。
語法
HSTRING detach_abi(winrt::hstring& object) noexcept;
HSTRING detach_abi(winrt::hstring&& object) noexcept;
參數
object
要操作 的 hstring 物件。
傳回值
Windows 執行階段 字串的句柄。
operator!= (不等運算符)
傳回值,指出兩個參數是否不相等。
語法
inline bool operator!=(winrt::hstring const& hLeft, winrt::hstring const& hRight) noexcept;
inline bool operator!=(winrt::hstring const& hLeft, std::wstring const& wRight) noexcept;
inline bool operator!=(winrt::hstring const& hLeft, wchar_t const* cRight) noexcept;
inline bool operator!=(std::wstring const& wLeft, winrt::hstring const& hRight) noexcept;
inline bool operator!=(wchar_t const* cLeft, winrt::hstring const& hRight) noexcept;
參數
hLeft
hRight
要與其他參數比較的 hstring 值。
wLeft
wRight
std::wstring
要與其他參數比較的值。
cLeft
cRight
要與其他參數比較的常數數位 指標wchar_t 。
傳回值
true
如果兩個參數彼此不相等,則為 ,否則 false
為 。
operator+ (串連運算子)
傳回由將兩個參數串連在一起所產生的新 hstring 物件。
語法
inline hstring operator+(winrt::hstring const& hLeft, winrt::hstring const& hRight);
inline hstring operator+(winrt::hstring const& hLeft, std::wstring const& wRight);
inline hstring operator+(winrt::hstring const& hLeft, std::wstring_view const& vRight);
inline hstring operator+(winrt::hstring const& hLeft, wchar_t const* cRight);
inline hstring operator+(winrt::hstring const& hLeft, wchar_t scRight);
inline hstring operator+(std::wstring const& wLeft, winrt::hstring const& hRight);
inline hstring operator+(std::wstring_view const& vLeft, winrt::hstring const& hRight);
inline hstring operator+(wchar_t const* cLeft, winrt::hstring const& hRight);
inline hstring operator+(wchar_t scLeft, winrt::hstring const& hRight);
參數
hLeft
hRight
要與其他參數串連的 hstring 值。
wLeft
wRight
std::wstring
要與其他參數串連的值。
vLeft
vRight
要與其他參數串連的 std::wstring_view 值。
cLeft
cRight
要與其他參數串連之常數數位 的指標wchar_t 。
scLeft
scRight
要與其他參數串連 的wchar_t 。
傳回值
由將兩個參數串連在一起所產生的新 hstring 物件。
運算子< (小於運算子)
傳回值,指出第一個參數是否小於第二個參數。
語法
inline bool operator<(winrt::hstring const& hLeft, winrt::hstring const& hRight) noexcept;
inline bool operator<(winrt::hstring const& hLeft, std::wstring const& wRight) noexcept;
inline bool operator<(winrt::hstring const& hLeft, wchar_t const* cRight) noexcept;
inline bool operator<(std::wstring const& wLeft, winrt::hstring const& hRight) noexcept;
inline bool operator<(wchar_t const* cLeft, winrt::hstring const& hRight) noexcept;
參數
hLeft
hRight
要與其他參數比較的 hstring 值。
wLeft
wRight
std::wstring
要與其他參數比較的值。
cLeft
cRight
要與其他參數比較的常數數位 指標wchar_t 。
傳回值
true
如果第一個參數小於第二個參數,則為 ,否則 false
為 。
operator<= (小於或等於運算子)
傳回值,指出第一個參數是否小於或等於第二個參數。
語法
inline bool operator<=(winrt::hstring const& hLeft, winrt::hstring const& hRight) noexcept;
inline bool operator<=(winrt::hstring const& hLeft, std::wstring const& wRight) noexcept;
inline bool operator<=(winrt::hstring const& hLeft, wchar_t const* cRight) noexcept;
inline bool operator<=(std::wstring const& wLeft, winrt::hstring const& hRight) noexcept;
inline bool operator<=(wchar_t const* cLeft, winrt::hstring const& hRight) noexcept;
參數
hLeft
hRight
要與其他參數比較的 hstring 值。
wLeft
wRight
std::wstring
要與其他參數比較的值。
cLeft
cRight
要與其他參數比較的常數數位 指標wchar_t 。
傳回值
true
如果第一個參數小於或等於第二個參數,則為 ,否則 false
為 。
operator== (等號運算符)
傳回值,指出兩個參數是否相等。
語法
inline bool operator==(winrt::hstring const& hLeft, winrt::hstring const& hRight) noexcept;
inline bool operator==(winrt::hstring const& hLeft, std::wstring const& wRight) noexcept;
inline bool operator==(winrt::hstring const& hLeft, wchar_t const* cRight) noexcept;
inline bool operator==(std::wstring const& wLeft, winrt::hstring const& hRight) noexcept;
inline bool operator==(wchar_t const* cLeft, winrt::hstring const& hRight) noexcept;
參數
hLeft
hRight
要與其他參數比較的 hstring 值。
wLeft
wRight
std::wstring
要與其他參數比較的值。
cLeft
cRight
要與其他參數比較的常數數位 指標wchar_t 。
傳回值
true
如果兩個參數彼此相等,則為 ,否則 false
為 。
運算子> (大於運算子)
傳回值,指出第一個參數是否大於第二個參數。
語法
inline bool operator>(winrt::hstring const& hLeft, winrt::hstring const& hRight) noexcept;
inline bool operator>(winrt::hstring const& hLeft, std::wstring const& wRight) noexcept;
inline bool operator>(winrt::hstring const& hLeft, wchar_t const* cRight) noexcept;
inline bool operator>(std::wstring const& wLeft, winrt::hstring const& hRight) noexcept;
inline bool operator>(wchar_t const* cLeft, winrt::hstring const& hRight) noexcept;
參數
hLeft
hRight
要與其他參數比較的 hstring 值。
wLeft
wRight
std::wstring
要與其他參數比較的值。
cLeft
cRight
要與其他參數比較的常數數位 指標wchar_t 。
傳回值
true
如果第一個參數大於第二個參數,則為 ,否則 false
為 。
operator>= (大於或等於運算符)
傳回值,指出第一個參數是否大於或等於第二個參數。
語法
inline bool operator>=(winrt::hstring const& hLeft, winrt::hstring const& hRight) noexcept;
inline bool operator>=(winrt::hstring const& hLeft, std::wstring const& wRight) noexcept;
inline bool operator>=(winrt::hstring const& hLeft, wchar_t const* cRight) noexcept;
inline bool operator>=(std::wstring const& wLeft, winrt::hstring const& hRight) noexcept;
inline bool operator>=(wchar_t const* cLeft, winrt::hstring const& hRight) noexcept;
參數
hLeft
hRight
要與其他參數比較的 hstring 值。
wLeft
wRight
要 std::wstring
與其他參數比較的值。
cLeft
cRight
要與其他參數比較的常數數位 指標wchar_t 。
傳回值
true
如果第一個參數大於或等於第二個參數,則為 ,否則 false
為 。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應