Visual Studio 2010을 사용하여 타사 앱 (AviSynth)의 플러그인으로 32 비트 DLL을 만듭니다. 내가 FFTW (http://fftw.org) DLL을 사용하려고 시도 할 때까지 DLL이 타사 응용 프로그램에 의해 올바르게로드되고있었습니다. 32 비트 FFTW DLL을 가져 와서 "lib /def:libfftw3-3.def"를 실행하여 .lib 파일을 만들고 프로젝트의 리소스로 추가했습니다. 함수 호출을 몇 개 만들었습니다. 그것은 잘 컴파일하지만 타사 도구에서로드하려고하면 실패합니다.프로젝트에 다른 DLL을 연결 한 후 C++ DLL을로드 할 수 없습니다.
나는 내 DLL과 함께 FFTW DLL을 넣으려고했지만 내 DllMain 내부에서 LoadLibrary를 사용해 보았지만 여전히 작동하지 않습니다.
DllMain 함수와 AviSynth (AvisynthPluginInit2)에서 호출하는 함수에서 디버거를 중지 할 수 있지만 AviSynth는 DLL을로드 할 수 없으며 이전에 호출 된 함수의 맨 위에서 중단 점을로드 할 수 없다고 주장합니다 더 이상 치지 않습니다.
AviSynth 오류 메시지는 다음과 같습니다로드 할 수 없습니다 : LoadPlugin "C : \ 프로그램 파일 (86)를 \ AviSynth 2.5 \ 플러그인 \ xxxMYPLUGINxxx.dll"당신의 도움에 대한
이감사합니다.
오케이.DllMain()에서 LoadLibrary()에 대한 호출을 제거했습니다. 이제는 내 DLL과 FFTW DLL에서 LoadLibrary를 호출하는 아주 간단한 콘솔 응용 프로그램을 작성했습니다. 두 경우 모두 내가받는 HResult는 "0x8007007e - 지정된 모듈을 찾을 수 없습니다"입니다. – xlat808
의존성 워커로 확인하십시오. 아마도 누락 된 가져 오기입니다. –