无法转换为int&缺少参数1的默认参数

时间:2013-12-04 12:38:49

标签: c++ qt mfc qstring

我正在使用现有的MFC项目在Qt开发新项目。在MFC中我有一个使用SYSTEMTime并返回CString的函数。

示例

    CString getTimestampString( 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_version_info().ProductName.c_str() + ", " + get_file_version_info().ProductVersion.c_str() );
        // get_file_version_info  are in some other director under lib_know directory.
}

以上函数在VS2010中编译。

现在在QT做同样的事情

   QString getTimestampString( void )
{
   QDateTime        systemTime = QDateTime::currentDateTime();
      QString            datestr    = systemTime.toString() ;

   return( QString("%1; %2, %3").arg( datestr )
                                .arg( get_file_version_info().ProductName.c_str() )
                                .arg( get_file_version_info().ProductVersion.c_str() ) 
                                 ) ;

  }

我收到了以下错误

  C:\mydir\application\libs\lib_know/FileVersioninfo.h(83): error C2440: 'default argument' : cannot convert from 'int' to 'know::FileVersionInfo::Pcalculator'
1>         

来源或目标的类型不完整

1>C:\mydir\application\libs\lib_know/FileVersioninfo.h(83): error C2548: 'know::init_file_version_info' : missing default parameter for parameter 1    

PS - >我无法对lib_know进行任何更改,因为许多其他项目正在使用此库..

请让我知道我摔倒的地方,我现在完全无能为力。

谢谢和问候,

1 个答案:

答案 0 :(得分:0)

已解决!!!!! ..知道:: init_file_version_info正在使用一些我没有使用命中和跟踪方法包含的升级库它现在正常工作...有趣的是编译器没有抛出任何链接器错误或与升压功能有关的任何事情