2017-12-28 10 views
2

현재 LoadLibrary 및 FreeLibrary 함수를 사용하여 응용 프로그램이 실행중인 시스템에 dll (mfplat.dll)이 있는지 확인하고 있습니다. 내 요구 사항은 dll이 시스템에 있고 DLL에서 함수를 호출 할 필요가 없는지 확인하는 것입니다. 같은 것을 확인하는 더 빠른 방법이 있습니까?DLL이 시스템에 있는지 알아 보는 가장 좋은 방법

+0

여기서 속도가 정말로 중요한가? –

+3

"시스템에 현재 상태"를 정의하십시오. 시스템 어디에서나 사용할 수 있습니까? 아니면 dll 검색에서 사용할 수 있습니까? 또한 왜 확인해야 할 필요성을 느낍니까? 왜 일어날 때 부하 실패를 다루지 않습니까? 어쨌든 그렇게해야합니다. 왜 여분의 코드를 작성하십시오. –

답변

5

LoadLibraryEx()을 사용하고 LOAD_LIBRARY_AS_DATAFILE 비트를 dwFlags 인수로 설정할 수 있습니다. MSDN에서

:이 값을 사용하는 경우는 데이터 파일 인 것처럼

, 시스템은 호출 프로세스의 가상 주소 공간에 파일을 매핑합니다. 매핑 된 파일을 실행하거나 실행할 준비를하기 위해 수행 된 작업은 입니다.

이렇게하면 일반 LoadLibrary()에 비해 상당히 빨라집니다.

+3

속도 향상을 넘어 dll에서 코드 실행을 피할 수 있습니다. 아마도 더 중요한 고려 사항입니다. –

관련 문제