OggVorbis ov_open () lança exceção de violação de access

Eu estou tentando abrir um arquivo OggVorbis usando o Vorbis SDK / DLLs. ov_open() lança uma exceção de violação de access 0x00000014 ov_open() . Eu verifiquei o arquivo existe: eu abri com fopen e imprimi o conteúdo para o console apenas para verificar – tudo correu bem!

Pode não fazer uma diferença, mas as DLLs foram compiladas como DEBUG Win32 , e meu projeto está compilando na mesma configuração.

Eu estou usando um caminho absoluto para o arquivo, por garantia, e o arquivo existe. Como dito anteriormente, posso abrir e ler sozinho.

O arquivo * .ogg foi renderizado usando o FL Studio a 192kbps, e também é aberto e reproduzido bem no Adobe Audition e no VLC Media Player.

Este é o código que eu tenho para abrir o arquivo e enviá-lo para a biblioteca Vorbis (o código veio deste tutorial):

 FILE* oggFile; const char* path = "C:\\absolute\\path\\to\\file.ogg"; const char* openMode = "rb"; int result; if (!(oggFile = fopen(path, openMode))) { throw std::string("Could not open file."); } if ((result = ov_open(oggFile, &oggStream, NULL, 0)) < 0) { // Never gets here fclose(oggFile); throw std::string("Could not open Ogg stream: "); } 

O código “Vorbis” onde a exceção é lançada:

 // vorbisfile.c: line #827 static int _fseek64_wrap(FILE *f,ogg_int64_t off,int whence) { if(f==NULL)return(-1); return fseek(f,off,whence); // Exception thrown here } 

Neste momento, off == 0 e whence == 1 .

Eu vejo o nome do método contém “64”. Isso poderia estar querendo ler um arquivo codificado de 64 bits? Ou ele está tentando rodar como 64 bits quando na verdade é compilado como 32 bits? Ou esta não é a questão de todo? : P

Além disso, como eu segui o tutorial, notei que havia alguns erros no código que eu tinha que corrigir. Então, eu estou querendo saber se o tutorial é “completo” o suficiente, ou seja: talvez haja alguma variável que eu deveria #define , ou alguma outra coisa que está faltando antes de enviar o arquivo aberto para ov_open para que ele seja tratado adequadamente.

Especificações técnicas:

  • Windows 10
  • Visual Studio Express 2013
  • _MSC_VER 1800
  • libogg.dll v1.3.2 (atual)
  • libvorbis.dll v1.3.5 (atual)

NOTA: O código-fonte Vorbis baixado continha apenas os arquivos Solution e Project até o VS2010. Eu abri as soluções VS2010 no Visual Studio Express 2013 para compilá-las, a fim de obter compatibilidade com o meu projeto. Eu também estou me perguntando se isso pode levar a alguns problemas.