0

https://stackoverflow.com/a/11587467/2738536を試しました

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

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

しかし、次のエラーが発生しました: 'GetUserNameA' : パラメーター 2 を 'int' から 'LPDWORD' に変換できません

4

2 に答える 2

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);
于 2013-09-13T02:43:46.337 に答える
0

LPDWORDは実際にはポインターです。

次のようなことをする必要があります。

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

DWORD リファレンス

于 2013-09-13T02:44:44.763 に答える