[英]Pointer to object error C++
我编写了一个简单的c ++程序,其中需要获取登录的用户。我有一个主要功能,在这个主要功能中,我调用了另一个获得用户名的功能。 问题是,如果我从主体调用它,则会出现此错误“表达式必须具有指向对象的指针!”
这是我的代码:
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]处; 我应该改变什么?
发生错误是因为您的代码中仅存在语法错误。 我想您正在尝试做的是:
wchar_t user_name[ULEN + 1];
但是除此之外,您的代码中还有更多问题。 wchar_t
仅代表一个字符。 现在看看您要做什么:
TCHAR*
为TCHAR*
,这样就告诉编译器该变量的内容 是指向内存的指针(不是) 您的代码可能看起来应该如下所示(我不知道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
,会发生什么情况?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.