我正在使用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