7

我使用 [Dllimport("DllName.dll")] 我确定我的 dll 的路径存在于进程 PATH 环境变量中,但我仍然得到“找不到 DllName.dll”

4

4 回答 4

13

“找不到 DllName.dll”也可能意味着 DllImport 没有找到 DllName.dll 依赖项之一。

抓取Dependecy Walker以检查您缺少哪个依赖项。

于 2009-03-17T12:56:09.183 回答
1

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

于 2008-11-16T17:05:06.087 回答
1

加载 DLL 时,DllImport 不参考 PATH 环境变量。我相当肯定 DllImport 遵循在按名称引用 DLL 时在本机程序中加载本机 DLL 的标准规则。这是一篇详细介绍这些规则的文章

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

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

于 2008-11-16T17:52:01.577 回答
1

const string lcms2Path = "C:\\lcms2.dll";在 C# 应用程序中使用的时间最长。但最后将 DLL 移动到 BIN 文件夹,这很完美[DllImport("lcms2.dll")]

于 2017-02-10T20:51:05.190 回答