<dllimport(“xyzdll”)> </dllimport(“xyzdll”)>中的Dll的默认路径>

时间:2011-11-15 14:44:28

标签: .net dllimport

<DllImport("XYZ.dll")>

有人能告诉我上述声明中FeeEngineDll.dll的默认路径是什么。?

2 个答案:

答案 0 :(得分:1)

当您使用DllImport attribure时,您可以提供完整或相对路径。如果不提供路径,则DLL必须在运行时(应用程序工作目录以及通过PATH环境变量指定的所有路径)中位于当前路径中,除非通过其他方式加载DLL。如果它们没有通过SetDllDirectory函数放在当前目录中,您可以说服Windows找到它。

另请参阅:Dynamic-Link Library Search Order

答案 1 :(得分:0)

在系统搜索DLL之前,它会检查以下内容

C:\Windows\SysWOW64
C:\Windows\System32
  • 如果已在内存中加载了具有相同模块名称的DLL,则系统将使用加载的DLL,无论它在哪个目录中。系统不会搜索DLL。

  • 如果DLL位于运行应用程序的Windows版本的已知DLL列表中,则系统将使用其已知DLL的副本(以及已知DLL的相关DLL,如果有)。系统不搜索DLL。有关当前系统上已知DLL的列表,请参阅以下注册表项:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs