Windows Runtime Cpp 文字列操作 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(文字列のネイティブ変数参照連動 WindowsCreateReference(関数))
(文字列結合 WindowsConcatString(関数))
232行: 232行:
  
 
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, hStr3, hRefStr;
 +
HSTRING_HEADER header;
 +
wchar_t cStr1[] = L"ワイド文字列:前半                  ";
 +
wchar_t cStr2[] = L"ワイド文字列:後半                  ";
 +
size_t length = wcslen(cStr1);
 +
 
 +
hr = WindowsCreateString(cStr1, length, &hStr1);
 +
if (FAILED(hr)) {
 +
wprintf_s(L"hString文字列の生成に失敗しました。\n");
 +
_CrtDbgBreak();
 +
return 0;
 +
}
 +
else {
 +
wprintf_s(L"hString文字列の生成に成功しました。\n");
 +
}
 +
 
 +
hr = WindowsCreateString(cStr2, length, &hStr2);
 +
if (FAILED(hr)) {
 +
wprintf_s(L"hString文字列の生成に失敗しました。\n");
 +
_CrtDbgBreak();
 +
return 0;
 +
}
 +
else {
 +
wprintf_s(L"hString文字列の生成に成功しました。\n");
 +
}
 +
 
 +
hr = WindowsConcatString(hStr1, hStr2, &hStr3);
 +
if (FAILED(hr)) {
 +
wprintf_s(L"hString文字列結合の生成に失敗しました。\n");
 +
_CrtDbgBreak();
 +
return 0;
 +
}
 +
else {
 +
wprintf_s(L"hString文字列結合の生成に成功しました。\n");
 +
}
 +
 
 +
wprintf_s(L"%s\n", WindowsGetStringRawBuffer(hStr3, nullptr));
 +
wprintf_s(L"Address=%p\n\n", hStr3);
 +
 
 +
hr = WindowsCreateStringReference(cStr1, length, &header, &hRefStr);
 +
if (FAILED(hr)) {
 +
wprintf_s(L"hString文字列参照の生成に失敗しました。\n");
 +
_CrtDbgBreak();
 +
return 0;
 +
}
 +
else {
 +
wprintf_s(L"hString文字列参照の生成に成功しました。\n");
 +
}
 +
 
 +
PCWSTR hStrBuffer = WindowsGetStringRawBuffer(hStr1, nullptr);
 +
 
 +
wprintf_s(L"%s\n", hStrBuffer);
 +
wprintf_s(L"Address=%p\n\n", hStrBuffer);
 +
 
 +
PCWSTR hRefStrBuffer = WindowsGetStringRawBuffer(hRefStr, nullptr);
 +
 
 +
wprintf_s(L"%s\n", hRefStrBuffer);
 +
wprintf_s(L"Address=%p\n\n", hRefStrBuffer);
 +
 
 +
wprintf_s(L"%s\n", cStr1);
 +
wprintf_s(L"Address=%p\n\n", cStr1);
 +
 
 +
swprintf_s(cStr1, L"ワイド文字列の再設定をswprintf_s関数で実施。");
 +
 
 +
wprintf_s(L"%s\n", hRefStrBuffer);
 +
wprintf_s(L"Address=%p\n\n", hRefStrBuffer);
 +
 
 +
hr = WindowsDeleteString(hStr3);
 +
if (FAILED(hr)) {
 +
wprintf_s(L"hStr3文字列の削除に失敗しました。\n");
 +
_CrtDbgBreak();
 +
return 0;
 +
}
 +
else {
 +
wprintf_s(L"hStr3文字列の削除に成功しました。\n");
 +
}
 +
 
 +
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");
 +
}
 +
 
 +
hr = WindowsDeleteString(hRefStr);
 +
if (FAILED(hr)) {
 +
wprintf_s(L"hRefStr文字列の削除に失敗しました。\n");
 +
_CrtDbgBreak();
 +
return 0;
 +
}
 +
else {
 +
wprintf_s(L"hRefStr文字列の削除に成功しました。\n");
 +
}
 +
 
 +
RoUninitialize();
 +
 
 +
_wsystem(L"pause");
 +
 
 +
return 0;
  
 
}
 
}

2017年5月25日 (木) 00:00時点における版



個人用ツール
名前空間

変種
操作
案内
ツールボックス