我有一個編輯框,其屬性爲ES_NUMBER
,並在按鈕上嘗試檢查編輯框的值是否介於2和15之間(包含)。從WinAPI的編輯窗口中正確提取int以進行邏輯測試
檢查了StackOverflow後,我發現強烈建議使用strtol()
而不是atoi()
,但是都沒有成功地允許我執行必要的檢查。請參閱下面的當前代碼。
char buff[1024];
GetWindowText(hWndNoOfTeams, (LPWSTR)buff, 1024);
int i;
i = strtol(buff,NULL,10);
if ((i > 1)&&(i < 16)){
MessageBox(hWnd, (LPCWSTR)buff, L"MSGBOX", MB_OK);
}else{
MessageBox(hWnd, L"The number of teams must be greater than 1 and less than 16.", L"MSGBOX", MB_OK);
};
該測試在0和9之間正常工作,但是,除此之外它總是顯示第二個消息框。我懷疑問題在於從字符串中提取整數的方法,因爲所有值buff
數組都包含正確的值。
道歉,如果我錯過了應該顯而易見的東西。