none
win8 metro C++ 想记录一些数据到日志文件,fopen_s总是返回13的错误值 RRS feed

  • 问题

  • win7+vc6没有问题的代码,放到win8+vs2012,会报错

    我更换成安全CRT版本的_s版本,fopen_s总是返回13的错误值,_vsnprintf_s会在运行时崩溃

    FILE * pFile;
    if(pFile = fopen(filePath,"ab")) 
    {
    char message[1024] = {0};
    char message2[1024] = {0};
    va_list argList;
    va_start(argList,strLog);
    _vsnprintf(message,1024,strLog,argList);
    va_end(argList);
    SYSTEMTIME currtime;
    GetLocalTime(&currtime);

    sprintf(message2, "%d-%d-%d,%d:%d:%d:%d:%s\n", 
    (int)currtime.wYear, (int)currtime.wMonth, (int)currtime.wDay,
    (int) currtime.wHour, (int)currtime.wMinute, (int)currtime.wSecond,
    (int) currtime.wMilliseconds, message);
    fwrite(message2,1,strlen(message2),pFile);
    fclose(pFile);
    }

    2012年6月26日 9:14

答案