在VC ++中将TCHAR与String值进行比较?

时间:2011-03-05 06:20:11

标签: visual-c++

如何在VC ++中将TCHAR与String值进行比较? 我的项目不是Unicode。 我这样做:

TCHAR achValue[16523] = NULL;
if(achValue == _T("NDSPATH"))
            {
                return FALSE;
            }

当achValue =“NDSPATH”时,此条件也不满足。

感谢任何帮助。

2 个答案:

答案 0 :(得分:4)

TCHAR或任何字符串数组只是指向第一个字符的指针。你要比较的是指针的值,而不是字符串。此外,您将数组指定为null,这是无意义的。

使用strcmp的win32变体。如果使用_tcscmp宏,它将在编译时使用正确的多字节/ unicode函数。

#define MAX_STRING 16523;

TCHAR achValue[MAX_STRING];
ZeroMemory(achValue, sizeof(TCHAR) * MAX_STRING);

sprintf(achValue, MAX_PATH, _T("NDSPATH"));

if (!_tcscmp(achValue, _T("NDSPATH"))
{
    // strings are equal when result is 0
}

答案 1 :(得分:0)

您不应该改用 _tprintf 吗?