首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Windows 開發中 LPCTSTR 與 std::wstring 相互轉換指南

     編輯:關於C語言

類型本質

  • LPCTSTR = const TCHAR*,指向寬字符(Unicode 構建)或窄字符(MBCS 構建)的只讀指針。
  • std::wstring = std::basic_string,擁有豐富操作接口的寬字符串類。

指針與數組區別

TCHAR wideResult[MaxResultLen];  // 字符數組,棧上分配,內容可修改
const TCHAR* wideResultPtr;      // 字符指針,指向常量內容(const 修飾所指內容),指針本身可修改指向

轉換代碼

LPCTSTR → std::wstring

LPCTSTR sPath = ...;
std::wstring wsPath = sPath;  // 隱式構造,拷貝內容

std::wstring → LPCTSTR

std::wstring wsPath = ...;
LPCTSTR sPath = wsPath.c_str();  // 返回內部緩衝區指針,生命周期綁定 wsPath

工程建議

  • 接口傳遞、存儲用 LPCTSTR(輕量、無額外分配)。
  • 需要拼接、查找、替換等複雜操作時,轉 std::wstring 處理完再轉回。
  • 注意 c_str() 返回指針隨 wstring 銷毀而失效,勿長期持有。
本文出自「賣萌程序員」博客,轉載請保留出處:原文鏈接
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved