1

一部の C++Builder コードを BCB2010 に移行しています。これらのオーバーロードがないため、これらの呼び出しを適切な関数に置き換える必要がLeftStr()ありRightStr()ますUnicodeString

AnsiLeftStr()機能しているように見えますが、名前が怖いです...

4

2 に答える 2

3

あなたが警戒するのは正しいです。代わりに、UnicodeString の SubString メソッドを使用してください。

于 2012-03-21T00:18:01.900 に答える
3

Ansi...()CB2009 では、すべての機能が Unicode に移行されました。命名スキームは、2009 年より前のコードとの下位互換性を維持するために保持されました。それだけです。

AnsiLeftStr()の代わりにを呼び出すようにコードを変更したくない場合は、内部的にまたはを呼び出す独自の関数をLeftStr()単純に実装できます。LeftStr()AnsiLeftStr()UnicodeString::SubString()

UnicodeString __fastcall LeftStr(const UnicodeString &AText, const int ACount)
{
    return AnsiLeftStr(AText, ACount);
}

.

UnicodeString __fastcall LeftStr(const UnicodeString &AText, const int ACount)
{
    return AText.SubString(1, ACount);
}
于 2012-03-21T06:36:48.187 に答える