函数原型:
BOOLEAN WINAPI GetUserNameEx(
_In_ EXTENDED_NAME_FORMAT NameFormat,
_Out_ LPTSTR lpNameBuffer,
_Inout_ PULONG lpnSize
);
头文件包含:
#include "Security.h"
#pragma comment(lib,"Secur32.lib")
如果编译报错如下:
C:\WinDDK\7600.16385.1\inc\api\sspi.h(60) : fatal error C1189: #error : You must define one of SECURITY_WIN32, SECURITY_KERNEL, or
请在所有头文件前面加上
#define SECURITY_WIN32
即可。
使用方法如下:
void getUserNameEx()
{
WCHAR wzUser[MAX_PATH] = {0};
ULONG buf_size = 0;
// 需要注意的是,第一次调用GetUserNameEx,第二个参数为NULL,第三个参数一定要为0,否则出现内存访问错误。
GetUserNameEx(NameSamCompatible, NULL, &buf_size);
GetUserNameEx(NameSamCompatible, wzUser, &buf_size);
wcout << L"User:" << wzUser << endl;
}
文章参考:
http://blog.csdn.net/shen_001/article/details/39317565
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724435(v=vs.85).aspx
博主所有文章已转自私人博客 Joe 的个人博客,谢谢关注!