2014-12-03 33 views
0

這條線。爲什麼我無法在MFC中比較CString

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

m_OldPassword,m_NewPassword,m_ConfirmPassword

是變量i從EditControl

m_OldPassword.Compare(d.pass)結果=真(測試)

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("")) 
{ 
} 

我不知道是什麼的情況發生。我確定我的輸入(新的,確認)是正確的。

+0

我們需要在該行之前看到代碼。具體來說,如何分配所有變量 – 2014-12-03 13:52:19

+2

'CString :: Compare'在平等**上返回'0' **! – BeyelerStudios 2014-12-03 13:54:14

+0

只在該行之前更新。看到我的更新 – KayTran 2014-12-03 13:58:51

回答

1

你需要做的

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

如果你比較兩個CSTRING說abcxyz
如果ABC等於字符串XYZ返回0
如果ABC大於這個字符串XYZ將返回1
如果abc小於字符串xyz,它將返回-1

相關問題