Emericc の斧を使用してプロジェクトのクラスを作成しています。このクラスの目標は、エラー フレームを使用してメッセージを返すことです。STL の std::string 変数のみを使用する必要があります。ただし、IDE は検索関数の 1 つの後の文字列操作を認識しません。
私はフランス人なので、使用する変数は私の言語であることに注意してください (コードは非常に単純です)。
私が遭遇したエラーは、この関数にあります:
string ErrMericc::ErrTrame(string trame)
{
/*
trame(fr) = frame(eng)
virgule(fr) = comma(eng) [I shortened "virgule" to "virg" in a variable]
*/
this->trame=trame;
trame.find('!', posExcl); //this marks the beginnig of the error number
if(posExcl == string::npos)
{
trame.clear(); //clearing in case the variable is not empty
//in case this is not an error frame
trame.push_back("Erreur 200 : "+errors[200]+". La trame envoyée n'est pas une trame d'erreur.");
return trame;
}
else
{
trame.find(',', posVirg); //here is the error
//starting here, no function using a string is recognized by the IDE
//and I don't find why
nb.push_back(trame.substr(posExcl+2, posVirg)); //unrecognized push_back() and substr()
errNb=StrToInt(trame.c_str());
trame=errors[errNb];
return "Erreur "+IntToStr(errNb)+" : "+trame;
}
}
C++Builder 6 からのメッセージ: [C++ エラー] ErrMericc.cpp(1): ソース コード エラーのため、コードの実行を呼び出すことができません。このエラー メッセージをダブルクリックすると、ファイル内のソース コードの最初の行に移動します。
「trame.find(',', posVirg);」をコメントアウトしない限り、エラー メッセージのポップが止まらないようです。
私のエラーがどこにあるのか教えてください。
編集:
C++ Builder 6 はコード行が気に入らないようです...
これは機能します:
trame.find(',', posVirg); //here is the error
//starting here, no function using a string is recognized by the IDE
//and I don't find why
nb.push_back(trame.substr(posExcl+2, posVirg)); //unrecognized push_back() and substr()
これはしません:
//here is the error
//starting here, no function using a string is recognized by the IDE
//and I don't find why
trame.find(',', posVirg);
nb.push_back(trame.substr(posExcl+2, posVirg)); //unrecognized push_back() and substr()
変。
問題はIDEにあると思い始めています。これまでのところ、ファイルをコピーして新しいフォルダーに移動しようとしましたが、誤動作には影響しません。