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

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


当achValue =“ NDSPATH”时,此条件也不会稳定。

任何帮助表示赞赏。

最佳答案

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
}

关于visual-c++ - 将TCHAR与VC++中的字符串值进行比较?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5202114/

10-10 10:08