在 xrad studio 中将 unicodestring 转换为字符串
convert unicodestring to string in xrad studio
我在 "Rad Studio 10 Seattle" 中遇到问题,我试图从 TEdit
对象获取文本输入,但我收到一条错误消息
E2034 Cannot convert 'UnicodeString' to 'string'
我的代码如下:
this->shopVar->addDog(edName->Text, StrToInt(edAge->Text), "male", "dogspecial");
这个函数 addDog
需要 (string, int, string, string)
当我尝试使用 edName->Text
从 TEdit
对象发送文本时,我收到了前面提到的错误消息。
我的问题如下,我可以将 edName
从 unicodestring 转换为字符串,还是必须更改参数列表的数据类型?如果可以,我该怎么做?
我一直在搜索这个问题,但没有找到任何与我的问题类似的东西。
您需要先将 UnicodeString
数据转换为 Ansi,然后再将其传递。最简单的方法是先把UnicodeString
赋值给一个AnsiString
(或导数),然后用它的c_str()
方法得到一个char*
指针,std::string
将接受:
this->shopVar->addDog(AnsiString(edName->Text).c_str(), ...);
如果可能,也许可以考虑重写你的 shopVar
class 以使用 std::wstring
,然后你可以删除 Ansi 转换:
this->shopVar->addDog(edName->Text.c_str(), StrToInt(edAge->Text), L"male", L"dogspecial");
我在 "Rad Studio 10 Seattle" 中遇到问题,我试图从 TEdit
对象获取文本输入,但我收到一条错误消息
E2034 Cannot convert 'UnicodeString' to 'string'
我的代码如下:
this->shopVar->addDog(edName->Text, StrToInt(edAge->Text), "male", "dogspecial");
这个函数 addDog
需要 (string, int, string, string)
当我尝试使用 edName->Text
从 TEdit
对象发送文本时,我收到了前面提到的错误消息。
我的问题如下,我可以将 edName
从 unicodestring 转换为字符串,还是必须更改参数列表的数据类型?如果可以,我该怎么做?
我一直在搜索这个问题,但没有找到任何与我的问题类似的东西。
您需要先将 UnicodeString
数据转换为 Ansi,然后再将其传递。最简单的方法是先把UnicodeString
赋值给一个AnsiString
(或导数),然后用它的c_str()
方法得到一个char*
指针,std::string
将接受:
this->shopVar->addDog(AnsiString(edName->Text).c_str(), ...);
如果可能,也许可以考虑重写你的 shopVar
class 以使用 std::wstring
,然后你可以删除 Ansi 转换:
this->shopVar->addDog(edName->Text.c_str(), StrToInt(edAge->Text), L"male", L"dogspecial");