我在" Rad Studio 10 Seattle"我试图从TEdit
对象获取文本输入,我得到一个错误消息说
E2034无法转换' UnicodeString'到'字符串'
我的代码如下:
this->shopVar->addDog(edName->Text, StrToInt(edAge->Text), "male", "dogspecial");
此功能addDog
需要(string, int, string, string)
当我尝试使用TEdit
从edName->Text
对象发送文本时,我得到前面提到的错误消息。
我的问题如下,我可以在edName
上从unicodestring转换为字符串,还是我必须更改参数列表的数据类型?如果是这样,我该怎么做?
我一直在寻找这个问题,但没有发现任何类似于我的问题。
答案 0 :(得分:0)
您需要先将UnicodeString
数据转换为Ansi,然后再传递给它。最简单的方法是先将UnicodeString
分配给AnsiString
(或派生词),然后使用其c_str()
方法获取char*
指针,{{1}将接受:
std::string
如果可能,也许可以考虑重写您的this->shopVar->addDog(AnsiString(edName->Text).c_str(), ...);
课程以使用shopVar
,然后您可以删除Ansi转换:
std::wstring