0
BYTE name[1000];

私のプロジェクトには、データ型でvisual c++定義された変数があります。私が間違っていなければ、は と同等です。これをに変換したいと思います。nameBYTEBYTEunsigned charunsigned char *LPCTSTR

どうすればいいですか?

4

2 に答える 2

3

LPCTSTRが定義されているかどうかに基づいて、どちらchar const*かとして定義されます。wchar_t const*UNICODE

  • が定義されている場合は、 を使用してマルチバイト文字列ワイドUNICODE文字列に変換する必要があります。MultiByteToWideChar

  • が定義されていない場合UNICODEは、単純なキャストで十分です: .static_cast< char const* >( name )

nameこれは、それがnull で終わる c-stringであると仮定します。その場合、それを定義しBYTEても意味がありません。をどのように操作しているかに基づいて、CHARまたはを使用する必要があります。TCHARname

于 2012-12-31T06:44:38.760 に答える
1

次のように、「name」変数を CString オブジェクトに直接割り当てることもできます。

CString strName = name;

そして、CString の GetBuffer() またはできれば GetString() メソッドを呼び出すことができます。これは、LPCTSTR を取得するのにより適しています。利点は、CString クラスが必要な変換を自動的に実行することです。Unicode 設定について心配する必要はありません。

LPCTSTR pszName = strName.GetString();
于 2013-03-25T10:31:56.937 に答える