转换 - 错误E2015,AnsiString(char)和AnsiString(短)之间的歧义

时间:2013-10-04 15:09:58

标签: c++ type-conversion c++builder

我想将用户选择的目录路径复制到标签(C ++ Bulder 6.0)

Label->Caption=SelectDirectory("Select a folder:", "", RootDir);

但是,我收到以下错误:

E2015 Ambiguity between '_fastcall System::AnsiString::AnsiString(char)'
and '_fastcall System::AnsiString::AnsiString(short)' [C++ Error]

请告诉我,如何正确转换SelectDirectory函数的结果,以便我可以在Label中显示它?

1 个答案:

答案 0 :(得分:2)

SelectDirectory的返回值是bool,而不是StringAnsiString没有bool值的任何构造函数,但它确实具有charshort值的构造函数,两者都可以隐式转换bool因此,模棱两可。请尝试使用此代码:

AnsiString selectedDir;

if(SelectDirectory("Select a folder:", "", selectedDir))
{
    Label->Caption = selectedDir;
}