【解決方法】LPCWSTR から LPCSTR に変換できますか

プログラミングQA

[ad_1]

LPCWSTR から LPCSTR に変換する必要があります。
このコードにはそれが必要です。

WFilePath                       path;
WIN32_FIND_DATAA                 fd;
HANDLE                          h;

	h = FindFirstFileA(path.GetString(), &fd); 

私が試したこと:

インターネットで検索してみましたが見つかりません

解決策 1

おそらくこんな感じでしょうか?

C++
#include <string>

LPCSTR ToLPCSTR(LPCWSTR wstr) {
  std::wstring ws(wstr);
  return ws.c_str();
}

すべてのワイド文字列を CStr に変換することはできないため、データ損失が発生する可能性があることに注意してください。

解決策 2

全部使うか UNICODE またはすべて ASCII, そのような問題を避けるために。 そして、あなたは電話することができます FindFirstFileW それは UNICODE バージョンを簡単にするために。 一般的には使用しない方が良いです A または W システムコールのサフィックス。 コンパイラはプロジェクト設定に基づいて正しいバージョンを選択します。 混合文字セットを使用する必要がある場合は、 WideCharToMultiByte 関数 (stringapiset.h) – Win32 アプリ | Microsoft Learn[^] 変換する UNICODEASCII

[ad_2]

コメント

タイトルとURLをコピーしました