我试过https://stackoverflow.com/a/11587467/2738536
#include <windows.h>
#include <Lmcons.h>
char username[UNLEN+1];
GetUserName(username, UNLEN+1);
但我收到了这个错误:'GetUserNameA': cannot convert parameter 2 from 'int' to 'LPDWORD'
我试过https://stackoverflow.com/a/11587467/2738536
#include <windows.h>
#include <Lmcons.h>
char username[UNLEN+1];
GetUserName(username, UNLEN+1);
但我收到了这个错误:'GetUserNameA': cannot convert parameter 2 from 'int' to 'LPDWORD'
根据文档,您传入的长度必须是指向双字的指针,因为该函数会根据返回的内容对其进行更改。
因此你应该有类似的东西:
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);
类型LPDWORD
实际上是一个指针。
您需要执行以下操作:
char username[UNLEN + 1];
DWORD name_length = ULEN + 1;
GetUserName(username, &name_length);