我有以下的非常奇怪的情況......我的Visual Studio 2010的編譯器不喜歡下面的一段代碼:Visual Studio 2010的C++編譯器的問題
QStringList lst2 = instantiatedTableInstances.split(strComma, skipper);
for(int i=0; i<lst2.size(); i++)
{
TableInstance* tabInst= v->getTableInstance(lst2.at(i));
result->addInstantiatedTableInstance(tabInst);
}
它給了我:
..\src\DeserializationFactory.cpp(1196) : error C2143: syntax error : missing ';' before 'constant'
..\src\DeserializationFactory.cpp(1196) : error C2440: '=' : cannot convert from 'QStringList' to 'int'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
..\src\DeserializationFactory.cpp(1198) : error C2228: left of '.size' must have class/struct/union
type is 'int'
..\src\DeserializationFactory.cpp(1200) : error C2228: left of '.at' must have class/struct/union
type is 'int'
和截圖:
但,如果我重新命名變量lst
而不是lst2
一切編譯...
這是在Visual Studio 2010(因爲GCC不關心它),或者還有一個更隱祕的理由一個有趣的錯誤嗎?
檢查範圍中的lst2是否已經定義/聲明/宏。 – user2672165
lst2是一個宏。從截圖看,它看起來有不同的顏色,應該放棄它 – relaxxx
提示:通過定義'WIN32_LEAN_AND_MEAN'修復。 – MSalters