GetProcAddress, ошибка 127 (ERROR_PROC_NOT_FOUND)

#c #dll #ogg

#c #dll #ogg

Вопрос:

Я пытаюсь вызвать функцию, определенную в DLL, задокументированную здесь:

http://xiph.org/vorbis/doc/vorbisfile/ov_fopen.html

LoadLibraryA выполнена успешно, и GetProcAddress, похоже, возвращает действительный адрес для каждой другой функции, с которой я пробовал. Здесь он возвращает NULL, а GetLastError() возвращает 127 (ERROR_PROC_NOT_FOUND).

 const char* dllName = "libvorbisfile.dll";
mhDll = LoadLibraryA(dllName);
typedef int (__cdecl *OV_FOPEN)(char*, OggVorbis_File*);
OV_FOPEN ProcFOpen = (OV_FOPEN) GetProcAddress(mhDll, "ov_fopen");
  

Что я могу сделать?

Комментарии:

1. Вы создали этот файл libvorbis. dll самостоятельно или вы получили ее откуда-то еще? В любом случае, depends.exe могу сказать вам, действительно ли DLL экспортирует эту функцию.

Ответ №1:

Согласно этой теме обсуждения, некоторые версии libvorbisfile .в dll отсутствует ov_fopen.

Комментарии:

1. Я не знаю, где вы нашли этот поток, но, похоже, это имеет место здесь. Я открыл dll в depends, и функция отсутствует! 🙁

2. Все, что я сделал, это поиск в Интернете для ‘ov_fopen libvorbisfile’ и бум, он был на первой странице результатов.

Ответ №2:

Изучите DLL с помощью Depends и выясните, почему вы не можете найти функцию. Вероятно, либо просто имя неверно в документации, либо проблема с искажением имени.