#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 и выясните, почему вы не можете найти функцию. Вероятно, либо просто имя неверно в документации, либо проблема с искажением имени.