C++ c++_T给出了“;表达式必须具有整型或非作用域枚举类型“;

C++ c++_T给出了“;表达式必须具有整型或非作用域枚举类型“;,c++,variables,scope,C++,Variables,Scope,我得到错误“表达式必须具有整数或非范围枚举类型”\T。。。如果我移除“+i+”部分,它就会消失。我目前的理解是,它将其强制转换为字符串,并且它不接受仅存在于当前作用域中的变量。。对吗?如何正确地做到这一点 for (int i = 0; 15; i++) { if (_tcsicmp(dataIdent, _T("ColorH_Low[" + i + "]")) == 0) { // (2) ptrSetupData->ColorH_Low[i] =

我得到错误“表达式必须具有整数或非范围枚举类型”\T。。。如果我移除“+i+”部分,它就会消失。我目前的理解是,它将其强制转换为字符串,并且它不接受仅存在于当前作用域中的变量。。对吗?如何正确地做到这一点

for (int i = 0; 15; i++)
{
    if (_tcsicmp(dataIdent, _T("ColorH_Low[" + i + "]")) == 0) {        // (2)
        ptrSetupData->ColorH_Low[i] = data->GetIVal();      // (2)
    }


}

\u T
(以及所有的
T
-stuff)是1995年Windows根本不处理Unicode时的一个黑客宏。只需使用
std::wstring
。谢谢,但是用std::wstring替换_T会显示消息“没有合适的从“std::wstring”到“const wchar_T*”的转换函数存在”。。。tcsicmp也是那些t-stuff的东西之一吗?是的
std::wstring
有一个运算符
==
进行比较;)我不太明白。。。(抱歉,第一次用C++和尝试了解正在发生什么)你的行特别是写代码< >(DATAIDOR==L)CurrHyLo[ [ +STD::To-WScLe[(i)+L ] ])< />。恐怕堆栈溢出不是深入C++课程的地方。