std::string을 LPCSTR 및 LPWSTR로 변환
std::string을 LPCSTR(상수 문자열에 대한 긴 포인터)로 변환 비교적 간단한 과정입니다. std::string 객체에서 c_str() 메서드를 호출하여 이를 수행할 수 있습니다. 이 메서드는 LPCSTR에 할당할 수 있는 const char * 값을 반환합니다.
그러나 다음과 같은 경우 상황이 좀 더 복잡해집니다. std::string을 유니코드(와이드) 문자열에 대한 긴 포인터인 LPWSTR로 변환합니다. 이렇게 하려면 다양한 유형의 문자열 간 변환에 사용할 수 있는 템플릿 클래스인 _bstr_t 클래스를 사용해야 합니다.
다음은 std::string을 변환하는 방법의 예입니다. _bstr_t 클래스를 사용하여 LPWSTR에 추가:
#include <string> #include <comdef.h> int main() { std::string str = "Hello world"; _bstr_t bstr(str.c_str()); // Now you have an LPWSTR that you can use. LPWSTR wide_str = bstr.GetBSTR(); return 0; }
LPSTR, LPCSTR, LPWSTR 및 LPCWSTR 이해
이러한 다양한 문자열 유형의 이름은 혼란스러울 수 있지만 분해하면 이해하기가 훨씬 쉬워집니다.
보시다시피 이러한 유형 간의 유일한 차이점은 상수 문자열에 대한 포인터인지 여부입니다. 이름의 L(긴) 부분은 무시해도 됩니다. 이는 16비트 Windows에서 그대로 사용된 것입니다.
위 내용은 std::string을 LPCSTR 및 LPWSTR로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!