Windows API GetUserNameEx 函式使用

Joe_vv發表於2015-01-05

函式原型:

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 的個人部落格,謝謝關注!


相關文章