'GetUserNameA':无法将参数2从'int'转换为'LPDWORD'

时间:2013-09-13 02:39:54

标签: c++

我尝试了https://stackoverflow.com/a/11587467/2738536

#include <windows.h>
#include <Lmcons.h>

char username[UNLEN+1];
GetUserName(username, UNLEN+1);

但我得到了这个错误:'GetUserNameA':无法将参数2从'int'转换为'LPDWORD'

2 个答案:

答案 0 :(得分:3)

根据documentation,你传入的长度必须是一个双字的指针,因为该函数会根据返回的内容对其进行更改。

因此你应该有类似的东西:

TCHAR username[UNLEN+1];       // TCHAR to allow for MBCS and Unicode
DWORD len = UNLEN + 1;         //   if you're in to that sort of thing :-)
GetUserName(username, &len);

答案 1 :(得分:0)

类型LPDWORD实际上是一个指针。

您需要执行以下操作:

char username[UNLEN + 1];
DWORD name_length = ULEN + 1;
GetUserName(username, &name_length);

DWORD reference