我希望使用以下方法从注册表读取一个值:
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;发布于 2010-10-15 05:40:03
这就是对我有用的东西:
char* cDriveStatus=ReadFromRegistry(HKEY_CURRENT_USER,_T(NDSPATH),(LPSTR)m_szDriveName.GetBuffer(m_szDriveName.GetLength()));发布于 2010-10-14 13:22:58
您的构建设置类似于' Unicode‘(基于对wchar_t的引用)--如果您不打算使用Unicode,您可以在项目的配置属性的通用页面“字符集”字段中将其更改为“使用多字节字符集”。
要查看项目的属性,右键单击“解决方案资源管理器”中的项目并选择“属性”。
您可能会发现ATL类CRegkey在根据注册表类型正确提取值方面很有用。
https://stackoverflow.com/questions/3932936
复制相似问题