如何在 VC++ 中比较 TCHAR 和 String 值?
我的项目不是 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/