2012-01-05 33 views

回答

1

都没有。 Windows必须能够找到该DLL通过以下方式之一:

  • 同一目录下的EXE
  • 在SetDllDirectory会()指定的目录,如果使用
  • 系统目录下(C:\默认Windows \ System32下)
  • 16位系统目录(C:\ WINDOWS \系统默认情况下)
  • 当前默认目录(Environment.CurrentDirectory)
  • PATH环境杂物中列出的目录中的一个ble

您应该非常青睐第一个,并且应该回退到第二个。

+0

非常感谢,并为64位机器添加c:\ windows \ syswow64?我试图了解这一切如何在服务使用本地DLL的WCF环境中工作。在这种情况下,这些本机不会从服务库的相同目录加载,因此根据架构从system32或syswow64加载。它是否正确? – 2012-01-05 20:43:58

+0

这是自动的,32位进程被重定向到syswow64而不是system32。 – 2012-01-05 20:47:55

+0

在64位操作系统上,SysWow64包含32位dll。他们是32位的exes。 System32包含64位dll。向后,但它的作品。并且由于64位exe无法加载32位dll,相反,32位exe无法加载64位dll,因此该路径不会包含其他路径。 – 2012-01-05 20:50:45