如何在 VC++ 中比较 TCHAR 和 String 值?我的项目不是 Unicode。我正在这样做:
TCHAR achValue[16523] = NULL;
if(achValue == _T("NDSPATH"))
{
return FALSE;
}
Run Code Online (Sandbox Code Playgroud)
当 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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14337 次 |
| 最近记录: |