Windows Runtime Cpp 文字列操作 新しいページはコチラ
提供: yonewiki
(→文字列のネイティブ変数参照連動 WindowsCreateReference(関数)) |
(→文字列の複製 WindowsDuplicateString(関数)) |
||
| 766行: | 766行: | ||
int main() { | int main() { | ||
| − | + | HRESULT hr; | |
| + | setlocale(LC_ALL, ""); | ||
| + | hr = RoInitialize(RO_INIT_TYPE::RO_INIT_MULTITHREADED); | ||
| + | if (FAILED(hr)) { | ||
| + | wprintf_s(L"初期化に失敗しました。\n"); | ||
| + | _CrtDbgBreak(); | ||
| + | return 0; | ||
| + | } | ||
| + | else { | ||
| + | wprintf_s(L"初期化に成功しました。\n"); | ||
| + | } | ||
| + | |||
| + | HSTRING hStr1, hStr2; | ||
| + | const wchar_t *cStr1 = L"ワイド文字1"; | ||
| + | size_t length = wcslen(cStr1); | ||
| + | |||
| + | length = wcslen(cStr1); | ||
| + | hr = WindowsCreateString(cStr1, length, &hStr1); | ||
| + | if (FAILED(hr)) { | ||
| + | wprintf_s(L"hStr1文字列の生成に失敗しました。\n"); | ||
| + | _CrtDbgBreak(); | ||
| + | return 0; | ||
| + | } | ||
| + | else { | ||
| + | wprintf_s(L"hStr1文字列の生成に成功しました。\n"); | ||
| + | } | ||
| + | |||
| + | wprintf_s(L"元文字列 =%s\n", WindowsGetStringRawBuffer(hStr1, nullptr)); | ||
| + | wprintf_s(L"hStr1_Address=%p, hStr2_Address=%p\n", hStr1, &hStr2); | ||
| + | |||
| + | hr = WindowsDuplicateString(hStr1, &hStr2); | ||
| + | if (FAILED(hr)) { | ||
| + | wprintf_s(L"文字列の複製に失敗しました。\n"); | ||
| + | _CrtDbgBreak(); | ||
| + | return 0; | ||
| + | } | ||
| + | else { | ||
| + | wprintf_s(L"文字列の複製に成功しました。\n"); | ||
| + | } | ||
| + | |||
| + | wprintf_s(L"参照文字列 =%s\n", WindowsGetStringRawBuffer(hStr2, nullptr)); | ||
| + | wprintf_s(L"hStr1_Address=%p, hStr2_Address=%p\n", hStr1, hStr2); | ||
| + | |||
| + | hr = WindowsDeleteString(hStr2); | ||
| + | if (FAILED(hr)) { | ||
| + | wprintf_s(L"hStr2文字列の削除に失敗しました。\n"); | ||
| + | _CrtDbgBreak(); | ||
| + | return 0; | ||
| + | } | ||
| + | else { | ||
| + | wprintf_s(L"hStr2文字列の削除に成功しました。\n"); | ||
| + | } | ||
| + | |||
| + | hr = WindowsDeleteString(hStr1); | ||
| + | if (FAILED(hr)) { | ||
| + | wprintf_s(L"hStr1文字列の削除に失敗しました。\n"); | ||
| + | _CrtDbgBreak(); | ||
| + | return 0; | ||
| + | } | ||
| + | else { | ||
| + | wprintf_s(L"hStr1文字列の削除に成功しました。\n"); | ||
| + | } | ||
| + | |||
| + | RoUninitialize(); | ||
| + | |||
| + | _wsystem(L"pause"); | ||
| + | |||
| + | return 0; | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
実行結果の出力結果 | 実行結果の出力結果 | ||
| − | + | 初期化に成功しました。 | |
| + | hStr1文字列の生成に成功しました。 | ||
| + | 元文字列 =ワイド文字1 | ||
| + | hStr1_Address=004DA5A0, hStr2_Address=001DF73C | ||
| + | 文字列の複製に成功しました。 | ||
| + | 参照文字列 =ワイド文字1 | ||
| + | hStr1_Address=004DA5A0, hStr2_Address=004DA5A0 | ||
| + | hStr2文字列の削除に成功しました。 | ||
| + | hStr1文字列の削除に成功しました。 | ||
| + | 続行するには何かキーを押してください . . . | ||
[[Windows Runtime Cpp]]へ戻る | [[Windows Runtime Cpp]]へ戻る | ||