代码之家  ›  专栏  ›  技术社区  ›  Adam Naylor

c++fopen返回了一个带有<bad-ptr>的文件*

  •  0
  • Adam Naylor  · 技术社区  · 17 年前

    我从libjpeg示例中复制了这段代码,并将其传递给标准文件;

    FILE *soureFile;
    if ((soureFile = fopen(sourceFilename, "rb")) == NULL)
    {
        fprintf(stderr, "can't open %s\n", sourceFilename);
        exit(1);
    }
    
    jpeg_stdio_src(&jpegDecompress, soureFile);
    jpeg_read_header(&jpegDecompress, true);
    

    有什么想法吗?

    编辑:

    编辑:
    JPEG support with ijg - getting access violation

    2 回复  |  直到 9 年前
        1
  •  2
  •   Artyom    17 年前

    使用strerror或perror来获取确切原因:

    FILE *soureFile;
    if ((soureFile = fopen(sourceFilename, "rb")) == NULL)
    {
        perror("fopen failed");
        exit(1);
    }
    
        2
  •  1
  •   xtofl Adam Rosenfield    17 年前

    " select isn't broken

    如果 fopen jpeg_read_header

    jpg_stdio_src 调用,如果所有先决条件都得到满足,它就不会失败。

    jpg_stdio_src 失败。我的猜测是:它需要使用 jpeg_create_decompress 宏。