[英]Expression must have integral or enum type Char*
我有一個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,所以我們不能像這樣加起來。S o我的問題是我如何以與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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.