1

次の方法を使用して、レジストリから値を読み取りたい:

char* cDriveStatus=ReadFromRegistry(HKEY_CURRENT_USER,_T(NDSPATH),m_szDriveName);

GetBuffer を使用して変換しようとしましm_szDriveName.GetBuffer(0)たが、これもエラーが表示されます。

エラー C2664: パラメーター 3 を 'wchar_t *' から 'LPSTR' に変換できません

編集: メソッドと変数の宣言は以下のとおりです。

char*   ReadFromRegistry(HKEY,LPCTSTR,LPSTR);
CString     m_szDriveName;
4

2 に答える 2

1

ビルド設定は「Unicode」のように見えます (参照に基づくwchar_t) - Unicode を使用するつもりがない場合は、プロジェクトの構成プロパティの [一般] ページの [文字セット] フィールドで、これを [マルチバイト文字セットを使用する] に変更できます。

プロジェクトのプロパティを表示するには、ソリューション エクスプローラーでプロジェクトを右クリックし、[プロパティ] を選択します。

ATL クラス CRegkeyは、型に基づいてレジストリから値を正しく抽出するのに役立つ場合があります。

于 2010-10-14T13:22:58.313 に答える
0

これは私のために働いたものです:

char* cDriveStatus=ReadFromRegistry(HKEY_CURRENT_USER,_T(NDSPATH),(LPSTR)m_szDriveName.GetBuffer(m_szDriveName.GetLength()));
于 2010-10-15T05:40:03.097 に答える