char * /* O - New string pointer */
_mxml_vstrdupf(const char *format, /* I - Printf-style format string */
               va_list    ap) /* I - Pointer to additional arguments */
//--error!!!!!!1>..\mxml-string.c(417) : error C2040: '_mxml_vstrdupf' : 'char *(const char *,va_list)' differs in levels of indirection from 'int ()'
{
  int bytes; /* Number of bytes required */
  char *buffer, /* String buffer */
temp[256]; /* Small buffer for first vsnprintf */  bytes = vsnprintf(temp, sizeof(temp), format, ap);  if (bytes < sizeof(temp))
  {
    return (char *)(strdup(temp));
  }
  if ((buffer = calloc(1, bytes + 1)) != NULL)
    vsnprintf(buffer, bytes + 1, format, ap);  return (buffer);
}

解决方案 »

  1.   

    没见过va_list         ap作为参数的。
    char *_mxml_vstrdupf(const   char   *format,...)
      

  2.   

    这是开源代码,我也觉得有些奇怪不过他的win32工程代码就是这样的,能解决吗?
      

  3.   

    _mxml_vstrdupf函数是否在其它文件里有声明?
    如果有的话,对比一下
      

  4.   

    没有啊,高手能帮我改一下这段代码吗,其实就是开源miniXML在vs2005下的编译出现这个错误