visual-c++ - 比较 TCHAR 和 VC++ 中的字符串值?

标签 visual-c++

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

相关文章:

c++ - 使用 MapWindowPoints 时堆栈损坏

c++ - 添加对 boost::fusion::vector 的引用

c++ - 使用 GetExceptionCode() 调试 HeapReAlloc() 失败

c++ - 嵌套 utree 与 boost::spirit::qi?

c++ - 如何加快 C++ 链接时间

c++ - 为什么 VC++ 编译代码而 clang 不编译?

matlab - 在 Visual Studio C++ 中使用 MATLAB 共享库

windows - 如何为非管理用户注册 COM dll

c++ - 读取较大文件时出现未处理的异常

c++ - 未声明的标识符