winrt::hstring 구조체(C++/WinRT)
텍스트 문자열을 나타내는 UTF-16 유니코드 문자의 순차적 컬렉션입니다. 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> 동의어입니다. |
생성자
생성자 | Description |
---|---|
hstring::hstring 생성자 | 입력 문자열 데이터의 복사본을 사용하여 hstring 구조체의 새 instance 초기화합니다. |
멤버 함수
함수 | Description |
---|---|
hstring::back 함수 | hstring 개체의 마지막 문자에 대한 참조를 반환합니다. |
hstring::begin 함수 | hstring 개체의 첫 번째 문자에 대한 const 반복기를 반환합니다. |
hstring::c_str 함수 | hstring 개체에 있는 문자의 기본 null로 끝나는 C 스타일 문자열에 대한 포인터를 반환합니다. 복사본이 만들어지지 않습니다. |
hstring::cbegin 함수 | hstring 개체의 첫 번째 문자에 대한 const 반복기를 반환합니다. |
hstring::cend 함수 | hstring 개체의 끝(마지막 문자 뒤에 하나 이상)을 반환합니다. |
hstring::clear 함수 | hstring 개체를 비워 줍니다. |
hstring::crbegin 함수 | const 역방향 반복기를 hstring 개체의 끝(의 마지막 문자 뒤에 하나 이상)으로 반환합니다. |
hstring::crend 함수 | hstring 개체의 첫 번째 문자에 대한 const 역방향 반복기를 반환합니다. |
hstring::d ata 함수 | hstring 개체에 있는 문자의 null로 끝나는 C 스타일 문자열 버전을 반환합니다. |
hstring::empty 함수 | hstring 개체가 비어 있는지 여부를 나타내는 값을 반환합니다. |
hstring::end 함수 | hstring 개체의 끝(마지막 문자 뒤에 하나 이상)을 반환합니다. |
hstring::front 함수 | hstring 개체의 첫 번째 문자에 대한 참조를 반환합니다. |
hstring::rbegin 함수 | const 역방향 반복기를 hstring 개체의 끝(의 마지막 문자 뒤에 하나 이상)으로 반환합니다. |
hstring::rend 함수 | hstring 개체의 첫 번째 문자에 대한 const 역방향 반복기를 반환합니다. |
hstring::size 함수 | hstring 개체의 문자 수를 반환합니다. |
멤버 연산자
연산자 | Description |
---|---|
hstring::operator std::wstring_view | hstring 개체를std::wstring_view 변환합니다. |
hstring::operator[](아래 첨자 연산자)) | hstring 개체 내의 지정된 위치에 있는 문자에 대한 참조를 반환합니다. |
hstring::operator= (assignment 연산자) | hstring 개체에 값을 할당합니다. |
무료 함수
함수 | Description |
---|---|
attach_abi 함수 | hstring 개체를 핸들에 Windows 런타임 문자열에 연결합니다. |
copy_from_abi 함수 | 핸들에서 Windows 런타임 문자열로 hstring 개체에 복사합니다. hstring을 지우고, 매개 변수를 복사하고, 핸들 관리를 시작합니다. |
copy_to_abi 함수 | hstring 개체에서 Windows 런타임 문자열에 핸들에 복사합니다. |
detach_abi 함수 | hstring 개체를 핸들에서 분리하여 호출자에게 반환할 수 있습니다. |
to_hstring 함수 | 입력 값을 값의 문자열 표현을 포함하는 winrt::hstring 으로 변환합니다. |
무료 연산자
연산자 | Description |
---|---|
operator!= (같지 않음 연산자) | 두 매개 변수가 서로 같지 않은지 여부를 나타내는 값을 반환합니다. |
operator+(연결 연산자) | 두 매개 변수를 함께 연결하여 발생하는 새 hstring 개체를 반환합니다. |
연산자< (보다 작음 연산자) | 첫 번째 매개 변수가 두 번째 매개 변수보다 작은지 여부를 나타내는 값을 반환합니다. |
operator<= (less-than-or-equal-to 연산자) | 첫 번째 매개 변수가 두 번째 매개 변수보다 작거나 같은지 여부를 나타내는 값을 반환합니다. |
operator== (같음 연산자) | 두 매개 변수가 서로 같은지 여부를 나타내는 값을 반환합니다. |
연산자> (보다 큼 연산자) | 첫 번째 매개 변수가 두 번째 매개 변수보다 큰지 여부를 나타내는 값을 반환합니다. |
operator>= (greater-than-or-equal-to 연산자) | 첫 번째 매개 변수가 두 번째 매개 변수보다 크거나 같은지 여부를 나타내는 값을 반환합니다. |
Iterators
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 구조체의 새 instance 초기화합니다.
구문
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 개체의 마지막 문자에 대한 참조를 반환합니다.
구문
wchar_t const& back() const noexcept;
반환 값
hstring 개체의 마지막 문자에 대한 참조입니다.
hstring::begin 함수
hstring 개체의 첫 번째 문자에 대한 const 반복기를 반환합니다. 반복기를 참조하세요.
구문
wchar_t const* begin() const noexcept;
반환 값
hstring 개체의 첫 번째 문자에 대한 const 반복기입니다.
hstring::c_str 함수
hstring 개체에 있는 문자의 기본 null로 끝나는 C 스타일 문자열에 대한 포인터를 반환합니다. 복사본이 만들어지지 않습니다.
구문
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 함수
hstring 개체의 첫 번째 문자에 대한 const 반복기를 반환합니다. 반복기를 참조하세요.
구문
wchar_t const* cbegin() const noexcept;
반환 값
hstring 개체의 첫 번째 문자에 대한 const 반복기입니다.
hstring::cend 함수
hstring 개체의 끝(마지막 문자 뒤에 하나 이상)을 반환합니다. 반복기를 참조하세요.
구문
wchar_t const* cend() const noexcept;
반환 값
hstring 개체의 끝(마지막 문자 뒤에 하나 이상)을 초과하는 const 반복기입니다.
hstring::clear 함수
hstring 개체를 비워 줍니다.
Syntax
void clear() noexcept;
hstring::crbegin 함수
const 역방향 반복기를 hstring 개체의 끝(의 마지막 문자 뒤에 하나 이상)으로 반환합니다.
구문
std::reverse_iterator<wchar_t const*> crbegin() const noexcept;
반환 값
const 역방향 반복기는 hstring 개체의 끝(마지막 문자 뒤에 하나 이상)을 넘습니다.
hstring::crend 함수
hstring 개체의 첫 번째 문자에 대한 const 역방향 반복기를 반환합니다.
구문
std::reverse_iterator<wchar_t const*> crend() const noexcept;
반환 값
hstring 개체의 첫 번째 문자에 대한 const 역방향 반복기입니다.
hstring::d ata 함수
hstring 개체에 있는 문자의 null로 끝나는 C 스타일 문자열 버전을 반환합니다.
구문
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 개체가 비어 있는지 여부를 나타내는 값을 반환합니다.
구문
bool empty() const noexcept;
반환 값
true
hstring 개체가 비어 있으면 이고, 그렇지 않으면 false
입니다.
hstring::end 함수
hstring 개체의 끝(마지막 문자 뒤에 하나 이상)을 반환합니다. 반복기를 참조하세요.
구문
wchar_t const* end() const noexcept;
반환 값
hstring 개체의 끝(마지막 문자 뒤에 하나 이상)을 초과하는 const 반복기입니다.
hstring::front 함수
hstring 개체의 첫 번째 문자에 대한 참조를 반환합니다.
구문
wchar_t const& front() const noexcept;
반환 값
hstring 개체의 첫 번째 문자에 대한 참조입니다.
hstring::operator std::wstring_view
hstring 개체를std::wstring_view 변환합니다.
구문
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
0부터 시작하는 문자 위치 또는 인덱스입니다.
반환 값
hstring 개체 내의 지정된 위치에 있는 문자에 대한 참조입니다.
hstring::operator= (assignment 연산자)
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 개체의 끝(마지막 문자 뒤에 하나 이상)으로 반환합니다.
구문
std::reverse_iterator<wchar_t const*> rbegin() const noexcept;
반환 값
const 역방향 반복기는 hstring 개체의 끝(마지막 문자 뒤에 하나 이상)을 넘습니다.
hstring::rend 함수
hstring 개체의 첫 번째 문자에 대한 const 역방향 반복기를 반환합니다.
구문
std::reverse_iterator<wchar_t const*> rend() const noexcept;
반환 값
hstring 개체의 첫 번째 문자에 대한 const 역방향 반복기입니다.
hstring::size 함수
hstring 개체의 문자 수를 반환합니다.
구문
uint32_t size() const noexcept;
반환 값
hstring 개체의 문자 수를 포함하는 uint32_t.
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<= (less-than-or-equal-to 연산자)
첫 번째 매개 변수가 두 번째 매개 변수보다 작거나 같은지 여부를 나타내는 값을 반환합니다.
구문
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>= (greater-than-or-equal-to 연산자)
첫 번째 매개 변수가 두 번째 매개 변수보다 크거나 같은지 여부를 나타내는 값을 반환합니다.
구문
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 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기