【发布时间】:2020-08-25 19:49:09
【问题描述】:
我正在尝试转换通过一些数据操作获得的result 字符串,例如:
std::string result = std::string(/* num_max */, '0').append(myDataModule->getId().c_str());
我在TDataModule 上从getId()(返回AnsiString)获得一个ID,使用AnsiString::c_str() 将其转换为std::string,并在左侧附加零(空格将保留)到我的result 字符串。
我需要在接收char *的函数中使用result的值:
void receiver(char * data, int num){
... <- A lot of code here
if( data != NULL )
{
strcpy( rdData, data); <-- rdData is an char *
...
}
}
基本上,在这个函数中它会将data复制到rdData并做一些验证。
运行代码时,调用这个函数时出现错误:
候选函数不可行:第一个参数没有从“std::string”(又名“basic_string”)到“char *”的已知转换
【问题讨论】:
-
如果
myDataModule->getId()的结果是std::string,那么我不能重现这个:ideone.com/C9w12k -
您在寻找
std::string::data()吗? -
getId()的返回类型是什么? -
对不起,我忘记发了,我编辑了问题,添加了
getId()的返回类型。
标签: c++ c++builder rad-studio