我正在将一些 C++Builder 代码移动到 BCB2010,并且需要用适当的函数替换调用LeftStr()
,RightStr()
因为这些函数没有UnicodeString
重载。
AnsiLeftStr()
似乎工作,但名字吓到我了......
我正在将一些 C++Builder 代码移动到 BCB2010,并且需要用适当的函数替换调用LeftStr()
,RightStr()
因为这些函数没有UnicodeString
重载。
AnsiLeftStr()
似乎工作,但名字吓到我了......
你保持警惕是对的。请改用 UnicodeString 中的 SubString 方法。
在 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);
}