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 回答