【发布时间】:2021-08-21 18:04:51
【问题描述】:
当我尝试在 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);
}
【问题讨论】:
-
请复制并粘贴错误信息。它包含一个代码 (Cxxxx),您可以使用它在此处查找解释或查找类似问题。作为这里的新用户,也请带上tour并阅读How to Ask。
-
使用 const_cast。 Win32界面设计的不好。
-
如果您想构建 unicode,请改用正确的项目设置,并且应该在标题中为您处理定义。