我有一个做这样的事情的MFC项目
CString getTimeString(void)
{
SYSTEMTIME systemTime;
CString datestr;
GetSystemTime( &systemTime );
datestr.Format( "%02i/%02i/%04i, %02i:%02i:%02i",
systemTime.wDay, systemTime.wMonth, systemTime.wYear,
systemTime.wHour, systemTime.wMinute, systemTime.wSecond );
return ( datestr + "; " + get_file_info().PName.c_str() + ", " + get_version_info().PVersion.c_str() );
}
现在我在QT中复制这样的内容
char* getTimeString( void )
{
QDateTime systemTime = QDateTime::currentDateTime();
QString datestr = systemTime.toString() ;
/*GetSystemTime( &systemTime );
datestr.Format( "%02i/%02i/%04i, %02i:%02i:%02i",
systemTime.wDay, systemTime.wMonth, systemTime.wYear,
systemTime.wHour, systemTime.wMinute, systemTime.wSecond );
*/
return ( datestr.toStdString().c_str() + "; " + get_file_info().PName.c_str() + ", " + get_version_info().PVersion.c_str() );
}
引发错误
“表达式必须具有整数或枚举类型...”
仔细看,我意识到,由于它不是std :: String,所以我们不能像这样添加。
我的问题是我如何以与VS2010中完成的完全相同的方式在QT中实现return函数(如上所示)。
最佳答案
我将通过以下方式进行操作:
[..]
return QString("%1; %2, %3")
.arg(datestr)
.arg(QString(get_file_info().PName.c_str()))
.arg(QString(get_version_info().PVersion.c_str())).toLocal8Bit().data();
关于c++ - 表达式必须具有整数或枚举类型Char *,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20360514/