首頁 > 後端開發 > C++ > 如何在 std::string 和 LPCSTR/LPWSTR 之間轉換?

如何在 std::string 和 LPCSTR/LPWSTR 之間轉換?

Linda Hamilton
發布: 2024-11-04 01:27:03
原創
960 人瀏覽過

How to Convert Between std::string and LPCSTR/LPWSTR?

在std::string 和LPCSTR/LPWSTR 之間轉換

將std::string 轉換為LPCSTR

將std::string 轉換為LPCSTR (指向常數字串的長指標),只需呼叫std::string 物件上的c_str() 方法即可。這將傳回一個指向內部以 null 結尾的字串緩衝區的指標。

<code class="cpp">std::string myString = "Hello World!";
const char* lpcstr = myString.c_str();</code>
登入後複製

將std::string 轉換為LPWSTR

將std::string 轉換為LPWSTR(指向常數寬度的長指標) string)需要更多步驟:

  1. 使用多位元組到寬字元函數MultiByteToWideChar() 將std::string 轉換為wstring(寬字串):
<code class="cpp">int len = MultiByteToWideChar(CP_UTF8, 0, myString.c_str(), myString.size(), NULL, 0);
wstring myWstring(len, '<pre class="brush:php;toolbar:false"><code class="cpp">const wchar_t* lpwstr = myWstring.c_str();</code>
登入後複製
'); MultiByteToWideChar(CP_UTF8, 0, myString.c_str(), myString.size(), &myWstring[0], len);
  1. 取得內部空間終止wstring 緩衝區的指標:

理解LPCSTR、LPSTR、LPWSTR 和LPCWSTR

不同術語在不同的上下文中引用指向字串的指標:

    不同術語在不同的上下文中引用指向字串的指標:
  • LPSTR:指向單字節字串的指標
  • LPCSTR:指向常數單字元字串
  • 指向常數單字元>LPWSTR:指向寬字串(Unicode)的指標
LPCWSTR:

指向常數寬字元的指標string (Unicode)

「LPstring (Unicode)「LP 」前綴表示指針很長,但這在現代Windows 開發中不再相關。 記住,LPWSTR 和 LPCWSTR 不是相同的。 LPCWSTR 是指向常數字串的指針,而 LPWSTR 是指向可修改字串的指標。

以上是如何在 std::string 和 LPCSTR/LPWSTR 之間轉換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板