这是正确的方法吗?我尝试了很多方法,似乎无法正常工作
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);
答案 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);