微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

RegSetValueEx引发错误char *与LPCWSTR不兼容

如何解决RegSetValueEx引发错误char *与LPCWSTR不兼容

|| 有一个函数可以使用以下命令将值复制到注册
RegSetValueEx(hKey,theName,REG_DWORD,(unsigned char *)&value,sizeof(value));
呼叫者传递的
theName
char *
我收到一个编译错误:   
char *
类型的参数与LPCWSTR不兼容 为什么会出现此错误? 我已经复制了一些使用它的代码(而且我知道它可以成功构建)并自己构建。 功能是否已更改或我的项目设置搞砸了?我不知道是哪个版本的VS代码创建的。     

解决方法

        这是因为Windows在过去18年中一直是Unicode操作系统。它的默认字符串类型是utf-16编码,在您的代码中为wchar_t *。或std :: wstring。或LPCWSTR,Windows标头中使用的typedef。注意\'w \'的流行,它表示宽。 它仍然支持char *字符串,您必须使用RegSetValueExA()。请注意添加的\“ A \”。这也是一个项目设置,使您的程序使用旧的多字节API。项目+属性,常规,字符集。避免向其他50亿客户进行营销。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。