我使用[Dllimport(“DllName.dll”)],我确信进程的PATH环境变量中存在指向我的dll的路径,但仍然出现“找不到DllName.dll”的错误。
const string lcms2Path = "C:\\lcms2.dll";
,但最终将DLL文件移到BIN文件夹中后,这个[DllImport("lcms2.dll")]
可以完美地工作。DllImport在加载DLL时不会查找PATH环境变量。我相当确定,当通过名称引用DLL时,DllImport遵循本地程序加载本地DLL的标准规则。以下是详细说明这些规则的文章。
http://msdn.microsoft.com/en-us/library/ms682586.aspx
我发现最简单的加载DLL的方法就是将其放在我正在执行的程序相同的位置。