如何在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/