表达式必须具有整数或枚举类型

表达式必须具有整数或枚举类型

我有一个做这样的事情的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/

10-12 17:52