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::beginhstring::end 멤버 함수에 의해 정의되며, 각 함수는 const 반복기를 반환합니다(hstring::cbeginhstring::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);

매개 변수

hhstring 개체를 초기화하는 hstring 값입니다.

vhstring 개체를 초기화하는 std::wstring_view 값입니다.

chstring 개체를 초기화하는 상수 wchar_t 배열에 대한 포인터입니다.

shstring 개체의 고정 크기를 지정하는 숫자입니다.

예제

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;

반환 값

truehstring 개체가 비어 있으면 이고, 그렇지 않으면 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);

매개 변수

hhstring 개체에 할당할 hstring 값입니다.

vhstring 개체에 할당할 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 개체입니다.

valueWindows 런타임 문자열에 대한 핸들입니다.

copy_from_abi 함수

핸들에서 Windows 런타임 문자열로 hstring 개체에 복사합니다. hstring을 지우고, 매개 변수를 복사하고, 핸들 관리를 시작합니다.

구문

void copy_from_abi(winrt::hstring& object, HSTRING value);

매개 변수

object 작동할 hstring 개체입니다.

valueWindows 런타임 문자열에 대한 핸들입니다.

copy_to_abi 함수

hstring 개체에서 Windows 런타임 문자열로 핸들에 복사합니다.

구문

void copy_to_abi(winrt::hstring const& object, HSTRING& value);

매개 변수

object 작동할 hstring 개체입니다.

valuehstring의 핸들을 복사할 핸들 참조입니다.

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;

매개 변수

hLefthRight 다른 매개 변수와 비교할 hstring 값입니다.

wLeftwRightstd::wstring 다른 매개 변수와 비교할 값입니다.

cLeftcRight 다른 매개 변수와 비교할 상수 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);

매개 변수

hLefthRight 다른 매개 변수와 연결할 hstring 값입니다.

wLeftwRightstd::wstring 다른 매개 변수와 연결할 값입니다.

vLeftvRight 다른 매개 변수와 연결할 std::wstring_view 값입니다.

cLeftcRight 다른 매개 변수와 연결할 상수 wchar_t 배열에 대한 포인터입니다.

scLeftscRight 다른 매개 변수와 연결할 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;

매개 변수

hLefthRight 다른 매개 변수와 비교할 hstring 값입니다.

wLeftwRightstd::wstring 다른 매개 변수와 비교할 값입니다.

cLeftcRight 다른 매개 변수와 비교할 상수 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;

매개 변수

hLefthRight 다른 매개 변수와 비교할 hstring 값입니다.

wLeftwRightstd::wstring 다른 매개 변수와 비교할 값입니다.

cLeftcRight 다른 매개 변수와 비교할 상수 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;

매개 변수

hLefthRight 다른 매개 변수와 비교할 hstring 값입니다.

wLeftwRightstd::wstring 다른 매개 변수와 비교할 값입니다.

cLeftcRight 다른 매개 변수와 비교할 상수 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;

매개 변수

hLefthRight 다른 매개 변수와 비교할 hstring 값입니다.

wLeftwRightstd::wstring 다른 매개 변수와 비교할 값입니다.

cLeftcRight 다른 매개 변수와 비교할 상수 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;

매개 변수

hLefthRight 다른 매개 변수와 비교할 hstring 값입니다.

wLeftwRightstd::wstring 다른 매개 변수와 비교할 값입니다.

cLeftcRight 다른 매개 변수와 비교할 상수 wchar_t 배열에 대한 포인터입니다.

반환 값

true 첫 번째 매개 변수가 두 번째 매개 변수보다 크거나 같으면 이고, 그렇지 않으면 false입니다.

추가 정보