を変換するために、私は方法、またはSTDに変換するためのコードスニペットを探しています::代わりにはstdを使用してのLPCWSTRどのようにC++でLPCWSTRへのstd ::文字列(ユニコード)
答えて
MSDNの記事へのリンクありがとうございます。これはまさに私が探していたものです。
std::wstring s2ws(const std::string& s)
{
int len;
int slength = (int)s.length() + 1;
len = MultiByteToWideChar(CP_ACP, 0, s.c_str(), slength, 0, 0);
wchar_t* buf = new wchar_t[len];
MultiByteToWideChar(CP_ACP, 0, s.c_str(), slength, buf, len);
std::wstring r(buf);
delete[] buf;
return r;
}
std::wstring stemp = s2ws(myString);
LPCWSTR result = stemp.c_str();
(この質問は無作為にブラウズされていますが、C++を実行して以来、長い時間がかかりました)標準ライブラリにはstd :: string - > std :: wstring変換はありませんか?それは不思議そうだ。正当な理由はありますか? – Domenic
std :: vector
理由は#233なぜC++は単純な文字列変換のための地獄out me me..10行を悩ます=/ –
に文字列::文字列、あなたはstd :: wstringを使うことができます。
編集:申し訳ありませんが、これは説明にはなりませんが、実行する必要があります。
使用のstd :: wstringの:: c_str()
* Q: "XからYに変換する必要があります。" * - * A: "Xの代わりにAを使用している仕事を探してください" *これは役に立たない。 – IInspectable
あなたはATL/MFC環境にある場合、あなたはATL変換マクロを使用することができます。
#include <atlbase.h>
#include <atlconv.h>
. . .
string myStr("My string");
CA2W unicodeStr(myStr);
それからとしてunicodeStrを使用することができますLPCWSTR。ユニコード文字列のメモリはスタック上に作成され、解放され、unicodeStrのデストラクタが実行されます。
ソリューションは、実際に他の提案のいずれよりもずっと簡単です:すべてのベスト
std::wstring stemp = std::wstring(s.begin(), s.end());
LPCWSTR sw = stemp.c_str();
、それはプラットフォームに依存します。 H2H :)
申し訳ありませんがBennyが私にとってはうまくいきませんが、Toranのソリューションはうまくいくようです –
ワーキングファイン。ありがとう。 – Durgesh
これはすべての文字が1バイト、すなわちASCIIまたは[ISO-8859-1](http://en.wikipedia。org/wiki/ISO-8859-1)。 UTF-8など、マルチバイトのものはすべて悲惨に失敗します。 –
string s = "Hello World";
std::wstring stemp = std::wstring(s.begin(), s.end());
LPCWSTR title =(LPCWSTR) stemp.c_str();
LPCWSTR wname =(LPCWSTR) "Window";
HINSTANCE hInst = GetModuleHandle(0);
WNDCLASS cls = { CS_HREDRAW|CS_VREDRAW, WndProc, 0, 0, hInst, LoadIcon(hInst,MAKEINTRESOURCE(IDI_APPLICATION)),
LoadCursor(hInst,MAKEINTRESOURCE(IDC_ARROW)), GetSysColorBrush(COLOR_WINDOW),0,wname };
RegisterClass(&cls);
HWND window = CreateWindow(wname,title,WS_OVERLAPPEDWINDOW|WS_VISIBLE,64,64,640,480,0,0,hInst,0);
MSG Msg;
while(GetMessage(&Msg,0,0,0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
あなたは中間体としてCString
を使用することができます。
std::string example = "example";
CString cStrText = example.c_str();
LPTSTR exampleText = cStrText.GetBuffer(0);
- 1. どのようにC++での六角char配列へのstd ::文字列を変換するには?
- 2. ユニコード文字列
- 3. はCでのstd ::文字列をエンコード++
- 4. 文字列内のユニコード文字によるアプリケーションのクラッシュ
- 5. どのようなタイプの "Cスタイルの文字列"とstd :: stringとの関係
- 6. ユニコード文字列最大サイズ
- 7. ユニコード文字列の一致
- 8. ユニコードのエスケープシーケンスをPython文字列のユニコード文字に変換するには
- 9. 文字列の比較。どのようにstd :: wstringと文字列を比較できますか? WRT strcmp
- 10. ユニコードでのSTL文字列の使用
- 11. Objective-C:ユニコード文字をデコードして文字列に戻すにはどうしたらいいですか?
- 12. char * C#の文字列へ
- 13. C++:文字列へのポインタ
- 14. 文字列へのポインタ - C
- 15. のstd ::文字列::長さ()はstd ::文字列対::サイズ()
- 16. ファイルからCComBSTRへのユニコード文字列の読み取り
- 17. のstd ::文字列の文字参照
- 18. Cスタイルの文字列をC++のstd :: stringに変換する
- 19. ユニコード文字列のロケールをC++で検出する
- 20. C++のユニコード文字列をsqlite DBに書き込む
- 21. CodeGear C++ Builder 2009でユニコード文字列をファイルに書き込む
- 22. 文字列をユニコード文字に変換するにはどうすればよいですか?
- 23. 分割コマンドのstd ::文字列を使用してC++で文字列:: substrは
- 24. どのように目的のcの文字列列挙などを行う
- 25. C++のユニコード文字の印刷
- 26. 文字列へのWCHAR、どうすればよいですか?
- 27. パフォーマンスのstd :: STD対はstrstr ::文字列::
- 28. ユニコード文字列をバイト文字列に変換する
- 29. のstd ::文字列:: c_str()と
- 30. C++の新しいユニコード文字0x
我々は逆にどのように行うのですか? – Sohaib
私はGoogleから反対のことをやろうとしています。あなたは方法を見つけられませんでしたか? –