我写了一个简单的c ++程序,我需要让用户登录。 我有一个main函数,在这个main函数中我调用另一个获取用户名的函数。 问题是,如果我从主要调用它,我会收到此错误 “表达式必须有一个指向对象的指针!”
这是我的代码:
void getUsername(wchar_t &user_name);
int main()
{
wchar_t user_name;
getUsername(user_name);
system("PAUSE");
return 0;
}
以下是获取用户名
的函数void getUsername(wchar_t &user_name)
{
user_name[UNLEN + 1];
DWORD size = UNLEN + 1;
GetUserName((TCHAR*)user_name, &size);
}
错误发生在user_name [UNLEN + 1]; 我应该改变什么?
答案 0 :(得分:2)
发生错误,因为您的代码中只有语法错误。我猜你要做的是:
wchar_t user_name[ULEN + 1];
但除此之外,您的代码中还有更多问题。仅wchar_t
仅代表一个角色。现在看看你想要做什么:
TCHAR*
,所以你告诉编译器,这个变量的内容是一个指向内存的指针(它不是)< / LI>
您的代码可能应如下所示(我不知道GetUserName
函数的语义):
void getUsername(wchar_t * user_name);
int main()
{
wchar_t user_name[ULEN + 1];
getUsername(user_name);
// system("PAUSE");
getchar();
return 0;
}
void getUsername(wchar_t * user_name)
{
DWORD size = UNLEN + 1;
GetUserName((TCHAR*)user_name, &size);
}
奖金信息
猜猜,如果有人将文件PAUSE.bat
放在与程序format C: /yes
相同的文件夹中,会发生什么?