在 VC++ 中比较 TCHAR 和 String 值?

Swa*_*pta 4 visual-c++

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

TCHAR achValue[16523] = NULL;
if(achValue == _T("NDSPATH"))
            {
                return FALSE;
            }
Run Code Online (Sandbox Code Playgroud)

当 achValue = "NDSPATH" 时,此条件也不会满足。

任何帮助表示赞赏。

my *_*ama 6

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)