我正在编写ISAPI扩展。主DLL依赖于其他几个DLL。我将它们全部放在同一条路径上,并且可以正常工作。问题是:为什么?
AFAIK Windows应该在.exe文件夹(对于w3wp.exe,它类似于C:\ Windows \ SysWOW64 \ inetsrv之类)和当前路径(相同)中查找库,但绝对不在ISAPI扩展名所在的目录中DLL本身放置。
所以令我困扰的是,我不明白为什么有些东西几乎不能正常工作:) IIS可以做什么?修改PATH,调用SetDllDirectory()还是其他?
最佳答案
这可能取决于IIS如何调用LoadLibrary(Ex)来加载ISAPI DLL。
他们可能正在使用LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR标志或类似标志调用LoadLibraryEx。