2011-10-07 3 views
0

나는 DLL에 정의 된 함수를 호출하는 것을 시도하고, 여기에 문서화 :GetProcAddress를, 오류 127 (ERROR_PROC_NOT_FOUND)

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

LoadLibraryA는 성공하고 GetProcAddress를 다른 모든 기능 I에 대해 유효한 주소를 반환하는 것 그걸로 해봤 어. 여기서 여기에 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

libvorbisfile.dll을 직접 제작 했습니까? 아니면 다른 곳에서 구 했나요? 어쨌든 [depends.exe] (http://www.dependencywalker.com/)는 DLL이 실제로 해당 기능을 내보내는 지 여부를 알려줍니다. –

답변

4

this discussion thread에 따르면 libvorbisfile.dll의 일부 버전에 ov_fopen이 누락되었습니다.

+0

그 스레드를 어디서 발견했는지는 모르겠지만 여기에있는 것처럼 보입니다. DLL을 열었고 함수가 누락되었습니다. : ( – user974967

+6

내가 한 것은 'ov_fopen libvorbisfile'에 대한 웹 검색이었으며 결과의 첫 페이지에 붐을 일으켰습니다. –

3

Depends으로 DLL을 검사하고 왜이 기능을 찾을 수 없는지 알아보십시오. 문서의 이름이 잘못되었거나 이름이 불명확 한 문제 일 수 있습니다.

관련 문제