我正在使用C和Windows API编写程序。我正在使用Visual Studio 2010 Express并将字符集设置为“未设置”。我做了一个编辑控件来接受用户名。这里的声明:在C和Win32 API中编程:比较字符串
hwnduser = CreateWindow (TEXT("EDIT"), NULL,
WS_VISIBLE | WS_CHILD | WS_BORDER,
220, 70, 80, 20,
hwnd, (HMENU) 3, NULL, NULL);
我取它的值写入字符串命名用户名。
len = GetWindowTextLength(hwnduser) + 1;
GetWindowText(hwnduser, username, len);
现在,有效的用户名是一个字符串名为c_user:
char c_user[] = "foo";
当我对它们进行比较,以检查用户是否使用下面的代码输入有效的用户名,
if (username == c_user)
{
MessageBox(hwnd, "Foo", "Bar", MB_OK);
}
else
{
MessageBox(hwnd, "Bar", "Foo", MB_OK);
}
它从不验证。相反,else条件总是执行!我在哪里犯错误?
如何解决此问题?
我试过strcmp!但是,输出不会改变。见的输出(和比较在代码):
您是否尝试过在消息框中显示它们或比较长度? – krs1 2011-04-14 18:15:41
可能的重复:http:// stackoverflow。com/questions/5611250/file-read-write-problem/5611268#comment-6391136 – 2011-04-14 18:20:26
@ krs1是的,我认为问题在那里。往上看。垃圾值而不是打印c_user(= foo) – 2011-04-14 18:21:32