Я пишу программу на C и Windows API. Я использую Visual Studio 2010 Express, и для набора символов установлено значение «Не установлено». Я сделал элемент управления для изменения имени пользователя. Вот объявление:
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! Но все равно выход не меняется. Смотрите вывод (и сравнение в коде):