2012-01-05 56 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