找出系统中是否存在DLL的最佳方法

han*_*605 2 c++ windows dll winapi

我目前正在使用LoadLibrary和FreeLibrary函数来检查我的应用程序运行的系统中是否存在dll(mfplat.dll).我的要求只是检查系统中是否存在dll,我不需要调用dll中的任何函数.有没有更快的方法来检查相同的?

zet*_*t42 5

您可以使用LoadLibraryEx()和设置参数的LOAD_LIBRARY_AS_DATAFILEdwFlags.

来自MSDN:

如果使用此值,系统会将文件映射到调用进程的虚拟地址空间,就像它是一个数据文件一样.执行或准备执行映射文件没有任何操作.

因此,与普通相比,这应该会带来显着的加速LoadLibrary().

  • 除了加速之外,这还避免了在dll中执行代码,这可能是一个更重要的考虑因素 (3认同)