c++ - 转换 - 错误 E2015,AnsiString(char) 和 AnsiString(short) 之间存在歧义

标签 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中显示?

最佳答案

SelectDirectory 的返回值是一个bool,而不是一个StringAnsiString 没有任何 bool 值的构造函数,但它有 charshort 值的构造函数,两者其中一个 bool 可以隐式转换为,因此歧义。请尝试使用此代码:

AnsiString selectedDir;

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

关于c++ - 转换 - 错误 E2015,AnsiString(char) 和 AnsiString(short) 之间存在歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19184720/

相关文章:

delphi - "IS"CBuilder 中的运算符 Delphi

c++ - 指针地址给出 1 而不是十六进制地址

java - 存储 20 位数字的数据类型

c++ - 对 boost::asio::io_context::run() 和 boost::thread::join() 感到困惑

r - 为什么在R中将强制转换为整数倍,是否有解决方法

image - 使用 julia 将图像从 RGB 转换为 HSL 并再次转换回来

c++ - 我包括 <cmath> 但无法编译 std::abs(double)

c++builder - 在 Codegear 2009 IDE 中设置命令行构建的构建配置

c++ - 插入基于数组的二叉搜索树? C++

c++ - boost::interprocess 共享内存删除对象而不破坏