System.DllNotFoundException in .NET DLL

System.DllNotFoundException in .NET DLL

本文关键字:DLL NET in DllNotFoundException System      更新时间:2023-10-16

我采用了用C/C 编写的程序,并修改了接受某些参数为输入并返回变量作为输出并创建Win32 DLL的主要功能。然后,我创建了一个.NET DLL,该DLL使用Interop访问第一个DLL。现在,当我将.NET DLL加载到我的C#应用中时,我会从DLL中获得一个System.dllNotFoundException,这确实使我感到困惑,因为该程序从来没有记忆问题,并且两个Win32/.NET DLL都位于同一目录中(分开通过修改主函数,代码尚未真正更改)。该线程中提供了解决方案,这是我最初的问题。我很确定答案是正确的,但我只是缺少一些东西。

您可以在此处下载我的VS解决方案。该解决方案包含三个项目:WIN32 DLL,.NET DLL和一个引用.NET DLL的Winform应用程序(但是尝试测试时会提供DLL异常)。任何帮助或调试指导将不胜感激。

  • 更新:我尝试了下面的所有提示/建议,但我仍然遇到完全相同的错误。如果使事情变得更容易,则可以在上面的超链接中下载我的VS解决方案。

确保已将Win32 DLL放在/Windows/System32文件夹上(如果仅传递DLL名称到Dllimport)

另外,您也可以将DLL的完整路径传递到dllimport属性。

使用依赖性步行者等工具来确保您不会在任何依赖的组件上错过。