2014-12-03 8 views
0

이 줄.MFC에서 CString을 비교할 수없는 이유

UpdateData(true); 
if(m_OldPassword.Compare(d.pass) && m_NewPassword.Compare(m_ConfirmPassword)) 

m_OldPassword, m_NewPassword, m_ConfirmPassword

제가

EditControl

m_OldPassword.Compare(d.pass) 결과 = TRUE (테스트)

m_NewPassword.Compare(m_ConfirmPassword) 결과 = 거짓에서 추가 변수이다.

IMPLEMENT_DYNAMIC(ChangePassword, CDialog) 

ChangePassword::ChangePassword(CWnd* pParent /*=NULL*/) 
    : CDialog(ChangePassword::IDD, pParent) 
    , m_OldPassword(_T("")) 
    , m_NewPassword(_T("")) 
    , m_ConfirmPassword(_T("")) 
{ 
} 

나는 어떤 일이 일어날 지 모른다. 나는 나의 입력 (새로운, 확인)이 맞다는 것을 확신한다. 당신이 두 CString을가 abcxyz
말을 비교하는 경우 ABC 문자열보다 큰 것은이 반환됩니다 XYZ 경우 문자열과 동일한 ABC는 XYZ가 0
을 반환하는 경우

+0

해당 줄 앞에있는 코드를 확인해야합니다. 구체적으로, 모든 변수가 할당 된 방법 –

+2

'CString :: Compare'는 동등성 **에서 '0' **을 반환합니다! – BeyelerStudios

+0

해당 라인 이전의 Updatedata. 내 업데이트 – KayTran

답변

1

당신은

if(m_OldPassword.Compare(d.pass)==0 && m_NewPassword.Compare(m_ConfirmPassword)==0) 

을 할 필요가 1
abc가 문자열 xyz보다 작은 경우 -1을 반환합니다.