我在7年前的其他主题中看到,这就是您获取登录用户名的方式:
#include <iostream>
#include <string>
#include <windows.h>
#include <Lmcons.h>
using namespace std;
int
main()
{
char username[UNLEN + 1];
DWORD username_len = UNLEN + 1;
GetUserName(username, &username_len);
std::cout << username << "\n" << &username_len;
}
但是当我调试它时,出现错误: *“ char ”类型的参数与“ LPWSTR”类型的参数不兼容,并且 'BOOL GetUserNameW(LPWSTR,LPDWORD)':无法将参数1从'char [257]'转换为'LPWSTR'
答案 0 :(得分:1)
Microsoft suggests表示您使用函数的Unicode版本。为此,请使用wchar_t
和GetUserNameW
:
#include <Lmcons.h>
#include <iostream>
#include <windows.h>
int
main()
{
wchar_t username[UNLEN + 1];
DWORD username_len = UNLEN + 1;
GetUserNameW(username, &username_len);
std::wcout << username << '\n';
}