C++ 빌더 5에 wirited 및 컴파일 된 C++ 코드가 있습니다. 하지만이 코드를 C++ 빌더 2009로 업데이트/마이그레이션해야합니다. 그래서, 몇 가지 문제가있다 : 라인에서비 const 함수 _fastcall const 객체를 호출하는 TStrings :: GetCount() const
int __fastcall TAllConversor::ListToStr(
const TStringList* pList,
AnsiString& strValue,
const long lngLimiteInferior,
const long lngLimiteSuperior) const
{
long lngIndice;
AnsiString strAux;
try
{
if (lngLimiteSuperior == 0)
lngIndice = pList->Count;
else
lngIndice = lngLimiteSuperior + lngLimiteInferior;
for (int i = lngLimiteInferior; i < lngIndice; i++)
{
strAux += pList->Strings[i] + ";";
}
strValue = strAux;
return 1;
}
catch(...)
{
return 0;
}
}
"lngIndice = pList->을 카운트를;" 이 오류가 발생합니다 : "E2522 비 const 함수 _fastcall TStrings :: GetCount() const 개체가 호출됩니다."
그래서 어떻게 해결할 수 있습니까?
이 코드에서는 "TStrings :: GetCount()"에 대해 본 적이 없습니까? 어디에서 전화 했니? 오류에서, 나는 선언과 함수의 정의가 일치하지 않거나 함수가 const 객체와 함께 호출되지만 이해해서는 안된다. Answer : casting을 사용하십시오. –
아마도 TStringList에 대한 정보가 필요합니다. 잘못된 것일 테니 – Mark
@gcc : TStringList는 VCL 클래스입니다. 'Count' 속성은'GetCount()'메서드를 호출합니다. –