Это мой класс:
class ControlBoard : public ILCD
{
virtual void print(const GFX_STRING &string, ...);
// ...
Этот мой интерфейс:
class ILCD
{
virtual void print(const GFX_STRING &string, ...) = 0;
// ...
Это мой метод:
void ControlBoard::print(const GFX_STRING &string, ...)
{
va_list args;
va_start(args, string);
// ...
va_end(args);
}
И это ошибка компиляции:
ошибка: общий код thunk не работает для метода "virtual void ControlBoard :: print (const GFX_STRING &,...)", который использует "..."
Если метод "print()" не находится в моем интерфейсе ILCD, компиляция прекрасна. Но мне нужно добавить его, поэтому я не понимаю, почему эта ошибка появляется?
Большое спасибо !
Простой код c с va_list
int WriteLog ( const char *pszBuffer, ... )
{
FILE *fp;
int iRet = FAIL;
va_list vaListArguments = NULL;
fp = _tfopen( LOGPATH, "a" );
if( NULL == fp )
{
return FAIL;
}
if( NULL != pszBuffer )
{
va_start( vaListArguments, pszBuffer );
if( NULL != vaListArguments )
{
iRet = _vftprintf(fp, pszBuffer, vaListArguments);
if( 0 <= iRet )
{
_ftprintf( fp, " \n");
fflush( fp );
iRet = SUCCESS;
}
}
va_end(vaListArguments);
fclose( fp );
}
return iRet;
}
&string
находится в void ControlBoard::print(const GFX_STRING &string, ...)
а не *string
?
&string
на*string