如果 - 然后不能正常工作

时间:2011-01-13 11:19:43

标签: visual-c++

这是正确的方法吗?我尝试了很多方法,似乎无法正常工作

CString result;
result  = ExecuteExternalProgram(L"c.txt", L"t.txt");   // return a CString

if (result == _T("one"))
    MessageBox(NULL,result.GetBuffer(), L"one", MB_OK);
else
        MessageBox(NULL,result.GetBuffer(), L"two", MB_OK);

3 个答案:

答案 0 :(得分:1)

C字符串无法与==进行比较 - ==比较结果指针是否与指向翻译字符串的指针相同。他们不平等。如果您要使用C字符串,那么您应该使用C字符串比较函数:

if (0 == strcmp(result, _T("one")) /* ... */ else /* ... */

答案 1 :(得分:0)

为什么不使用 strcmp 并检查它是否正常工作?

答案 2 :(得分:0)

看起来你正在使用MFC的CString,它有一个重载的'='运算符,所以你的if条件部分正常。但是,您需要更改以下代码:

CString result;
result  = ExecuteExternalProgram(L"c.txt", L"t.txt");   // return a CString

if (result == CString("one"))
    MessageBox(NULL,result.GetBuffer(), L"one", MB_OK);
else
    MessageBox(NULL,result.GetBuffer(), L"two", MB_OK);