我使用 [Dllimport("DllName.dll")] 我确定我的 dll 的路径存在于进程 PATH 环境变量中,但我仍然得到“找不到 DllName.dll”
Hanan
问问题
23923 次
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 回答