首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自std::string的c++ RegCreateKeyEx LPCWSTR

来自std::string的c++ RegCreateKeyEx LPCWSTR
EN

Stack Overflow用户
提问于 2013-09-11 23:35:24
回答 1查看 369关注 0票数 0

我在注册表中写了几个操作,我被困在这里两天了。真的不知道怎么解决这个问题。所以,这是我的代码:

代码语言:javascript
复制
 HKEY hkey;
 DWORD dwDisposition;
 string address = "SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\";
 QString qAddr= ui->networkCard->itemData(ui->networkCard->currentIndex()).toString();
 address += qAddr.toStdString();
 string sAddr = qAddr.toStdString();
cout << address; // here is the value I want to proceed as 2nd arg in RegCreateKeyEx
size_t size = address.size();
wchar_t szBuff[size];
swprintf(szBuff, size, L"%s", address.c_str());
cout << szBuff << endl; // but after conversion I get some hex data like 0x28d172 :(

if(RegCreateKeyEx(HKEY_LOCAL_MACHINE, szBuff, 0, NULL, 0, KEY_WRITE, NULL, &hkey, &dwDisposition) == ERROR_SUCCESS){
  DWORD dwType, dwSize;
  dwType = REG_DWORD;
  ....

RegCreateKeyEx需要一个LPCWSTR arg,但是我真的不知道如何通过std::string来实现它。你能帮我修一下吗?:)谢谢!

EN

回答 1

Stack Overflow用户

发布于 2013-09-11 23:46:33

只有当您的项目设置为unicode时,RegCreateKeyEx才需要LPCWSTR。如果需要unicode项目,请使用std::wstring而不是std::string。如果您不需要unicode项目,则将项目字符集设置更改为Multi-Byte Character Set,这将允许您使用std::string。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18745486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档