如何获取当前登录的用户win32 api的用户名?

时间:2020-03-15 21:02:09

标签: c++ windows winapi

我在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'

1 个答案:

答案 0 :(得分:1)

Microsoft suggests表示您使用函数的Unicode版本。为此,请使用wchar_tGetUserNameW

#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';
}
相关问题