如何转换 CString LPStr
我想使用以下方法从注册表读取值:
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;
I want to read a value from registry using the following method:
char* cDriveStatus=ReadFromRegistry(HKEY_CURRENT_USER,_T(NDSPATH),m_szDriveName);
I tried converting using GetBuffer,m_szDriveName.GetBuffer(0)
but this again shows error:
error C2664: cannot convert parameter 3 from 'wchar_t *' to 'LPSTR'
Edit:
Declaration of Method and variable is below:
char* ReadFromRegistry(HKEY,LPCTSTR,LPSTR);
CString m_szDriveName;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的构建设置看起来像“Unicode”(基于对
wchar_t
的引用) - 您可以在项目配置属性的“常规”页面的“字符集”字段中将其更改为“使用多字节字符集”,如果使用 Unicode 不是您的本意。要查看项目的属性,请右键单击“解决方案资源管理器”中的项目,然后选择“属性”。
您可能会发现 ATL 类 CRegkey 对于从注册表中正确提取值非常有用根据他们的类型。
Your build settings look like 'Unicode' (based on reference to
wchar_t
) - you can change this to 'Use Multibyte Character Set' in the General page, Character Set field, of your project's Configuration Properties, if using Unicode is not your intention.To see your project's properties right-click the project in Solution Explorer and select Properties.
You may find the ATL class CRegkey useful in correctly extracting values from the registry based on their type.
这对我有用:
This is what worked for me: