2013-10-04 3 views
0

Я хотел бы, чтобы скопировать путь к каталогу, который был выбран пользователем, маркировать (C++ Bulder 6.0)Conversion - ошибка E2015, неоднозначность между AnsiString (полукокса) и AnsiString (короткий)

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

Но, Я получаю следующее сообщение об ошибке:

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

Пожалуйста, расскажите, как правильно преобразовать результат SelectDirectory функции, так что я мог бы показать его в этикетке?

ответ

2

Возвращаемое значение SelectDirectory - это bool, а не String. AnsiString не имеет конструкторов для значений bool, но у него есть конструкторы для значений char и short, оба из которых bool могут быть неявно преобразованы в, следовательно, двусмысленность. Вместо этого используйте этот код:

AnsiString selectedDir; 

if(SelectDirectory("Select a folder:", "", selectedDir)) 
{ 
    Label->Caption = selectedDir; 
} 
Смежные вопросы