DllImport拒绝找到我原生的.dll。抛出DllNotFoundException

时间:2014-07-28 20:08:56

标签: c# dll interop pinvoke dllimport

我有一个引用本机dll的项目。我将.dll添加到项目中并将其设置为“如果更新的话”复制。所以它出现在输出目录中。仍然每次我尝试调用导出的函数时,它都会抛出未找到的错误。

我做了一些研究并读到,也许.dll无法找到它的依赖关系。我使用依赖walker进行检查,列出的唯一依赖项是Kernel32.dll和MSCVR80.DLL。这两个都是在我的系统上找到的。

我使用了dumpbin.exe并查看了所有导出的函数,因此它似乎是格式正确的.dll。我无法弄清楚为什么DllImport无法找到它。

我还将DLL放在不同的目录中并将其添加到我的路径中。这也没有帮助。有人有主意吗?还有什么我可以尝试的吗?

1 个答案:

答案 0 :(得分:4)

使用来自Sysinternals工具(http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx)的进程监视器来查看访问的内容。仅按进程过滤(否则您将获得太多数据)并查看实际失败的请求。这应该可以让您了解要查找的内容。