1

我正在将一些 C++Builder 代码移动到 BCB2010,并且需要用适当的函数替换调用LeftStr()RightStr()因为这些函数没有UnicodeString重载。

AnsiLeftStr()似乎工作,但名字吓到我了......

4

2 回答 2

3

你保持警惕是对的。请改用 UnicodeString 中的 SubString 方法。

于 2012-03-21T00:18:01.900 回答
3

在 CB2009中,所有Ansi...()功能都迁移到了 Unicode。保留命名方案是为了保持与 2009 年前代码的向后兼容性,仅此而已。

如果您不想将代码更改为 callAnsiLeftStr()而不是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 回答