내가하는 방법을 찾고 있어요, 또는 표준 : : 문자열을 변환하는 코드는 표준 : : 문자열을 사용하는 대신방법 C에서 LPCWSTR하는 표준 : : 문자열을 변환하는 ++ (유니 코드)
답변
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++ 단순한 문자열 변환을위한 나 ... 10 행 코드 =/ –
을 LPCWSTR하기 위해, 당신은 std :: wstring을 사용할 수 있습니다.
편집 : 죄송합니다. 설명이 필요하지 않지만 실행해야합니다.
를 사용하여 표준 : : wstring의 :: c_str() 당신은 ATL/MFC 환경에있는 경우
* Q : "X에서 Y로 변환해야합니다."* - * A : "X 대신 A를 사용하는 직업을 찾으십시오."* 이것은 쓸모가 없습니다. – IInspectable
, 당신은 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의 자신의 솔루션을 잘 작동하는 것 (하지만 ...!)! –
Working Fine. 감사. – 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. javascript - 유니 코드 문자열을 ascii로 변환하는 방법
- 2. Perl에서 문자열을 유니 코드 문자열로 변환하는 방법
- 3. C에서 문자열을 char로 변환하는 방법
- 4. 유니 코드 문자열을 char로 변환하는 방법은 무엇입니까?
- 5. C에서 코드로 문자열을 변환하는 방법 #
- 6. C에서 문자열을 int로 변환하는 방법
- 7. 입력 문자열을 Java의 유니 코드 정수로 변환하는 방법
- 8. C에서 유니 코드 문자열 #
- 9. 유니 코드 코드 포인트를 UTF-8로 변환하는 가장 간단한 방법
- 10. C에서 문자열을 int 배열로 변환하는 방법 #
- 11. 객관적인 C에서 문자열을 int로 변환하는 방법
- 12. 유니 코드 문자를 소문자로 변환하는 표준 알고리즘은 무엇입니까?
- 13. char에서 유니 코드 값으로 변환하는 방법 #
- 14. QString을 LPCSTR (유니 코드)로 변환하는 방법
- 15. 표준 파이썬 라이브러리와 유니 코드
- 16. 유니 코드를 ASCII로 변환하는 코드
- 17. 유니 코드 문자열을 CleverCSS에 삽입
- 18. 기본적으로 유니 코드 문자열을 사용해야합니까?
- 19. 유니 코드 문자열을 utf8로 변환
- 20. 유니 코드 문자를 이스케이프 처리 된 ASCII로 변환하는 방법 #
- 21. 인코딩 된 유니 코드를 포함하는 JSON 문자열을 변환하는 방법
- 22. C# : 유니 코드 문자를 해당 ASCII 문자로 변환하는 방법
- 23. C에서 유니 코드 문자열 비교 C#
- 24. Concat wchar_t C에서 유니 코드 문자열?
- 25. Java 및 유니 코드
- 26. 파이썬 유니 코드 : 유니 코드 문자열에 대해 테스트하는 방법
- 27. 파이썬 문자열에서 유니 코드 이스케이프 시퀀스를 유니 코드 문자로 변환하는 방법
- 28. 파이썬으로 utf-8 문자열을 big5로 변환하는 방법?
- 29. C에서 문자열을 디코딩하는 방법 #
- 30. 문자열을 ifstream으로 변환하는 방법
우리가 어떻게 반대해야합니까? – Sohaib
나는 그 반대 일을하려고 구글에서 왔습니다. 방법을 찾지 못했습니까? –