GetUserNameW为wstring

时间:2017-01-17 20:33:50

标签: c++ winapi

我想知道如何将当前登录用户的名称作为wstring。

我只发现了类似的LPWSTR示例:

#include <iostream>
#include <windows.h>
#include <Lmcons.h>
using namespace std;

int main()

{
    wchar_t name[UNLEN+1];
    DWORD size = UNLEN + 1;

    if (GetUserNameW( (LPWSTR)name, &size ))
    {
        cout << "Hello, " << name << "!\n";
    }
    else
    {
        cout << "Hello, unnamed person!\n";
    }
}
return 0;

}

有人能告诉我如何将其转换为wstring吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

调用std::wstring后,您可以在name的{​​{1}}上使用GetUserNameW的构造函数:

if(GetUserNameW(name, &len))
{
    std::wstring strname(name); 
    std::wcout << L"Hello, " << strname << std::endl;
}

如果您一般性地询问为什么Windows API不支持C ++的std::开箱即用,那是因为它首先与C兼容。