即使它在PATH中,dllimport也未能找到dll

时间:2008-11-16 16:43:18

标签: dll path pinvoke dllimport

我使用[Dllimport(“DllName.dll”)] 在那里我确定我的dll的路径存在于进程PATH环境变量中,并且仍然存在 我收到“无法找到DllName.dll”

4 个答案:

答案 0 :(得分:12)

“无法找到DllName.dll”也可能意味着DllImport未找到DllName.dll依赖项之一。

抓住Dependecy Walker来检查您缺少的依赖性。

答案 1 :(得分:1)

加载DLL时,DllImport不会查询PATH环境变量。我相当确定DllImport遵循在名称引用DLL时在本机程序中加载本机DLL的标准规则。这篇文章详细介绍了这些规则

http://msdn.microsoft.com/en-us/library/ms682586.aspx

我发现加载DLL的最简单方法就是将它放在与我正在执行的程序相同的位置。

答案 2 :(得分:1)

我在C#应用程序中使用li a:hover { color: #999; } 的时间最长。但最后将DLL移动到BIN文件夹,这完美const string lcms2Path = "C:\\lcms2.dll";

答案 3 :(得分:0)

我建议您使用FileMon(sysinternals.com)检查您对库位置的假设是否正确。