当我尝试在C++中创建用户帐户时,出现错误
类型为“const wchar_t”的值不能分配给类型为“LPWSTR”的实体usri1_name
和usri1_password
上出现两次等号错误。使用Visual Studio 2019编译。有什么想法吗?
#ifndef UNICODE
#define UNICODE
#endif
#pragma comment(lib, "netapi32.lib") //heard this is dynamic linking ?
#include <windows.h>
#include <lm.h>
int main()
{
USER_INFO_1 ui;
DWORD dwLevel = 1;
DWORD dwError = 0;
//NET_API_STATUS nStatus;
ui.usri1_name = L"istech";
ui.usri1_password = L"p@ssword";
ui.usri1_priv = USER_PRIV_USER;
ui.usri1_home_dir = NULL;
ui.usri1_comment = NULL;
ui.usri1_flags = UF_PASSWD_CANT_CHANGE;
ui.usri1_script_path = NULL;
NetUserAdd(NULL, dwLevel, (LPBYTE)&ui, &dwError);
}
2条答案
按热度按时间eqqqjvef1#
usri_name
和usri_password
字段是指向 * nonconst * Unicode缓冲区的指针,但您试图将字符串常量赋给它们,它们是 const 数据。因此,您可以:
const_cast
去掉了常量的值(要特别小心!):wchar_t[]
数组中:r1zk6ea12#
对于任何需要解决方案的人,下面是对我有效的方法: