我发现 Stack Overflow 是我们所有澄清的最佳组之一。我有用 C 编写的本机 dll。我使用 VC++(VS 2008)编译了项目,使用我的 C# 应用程序,我通过 Dllimport 调用了 dll 函数。问题是它无法加载dll。它说无法加载dll。
我已经将我的 dll 和我的应用程序从 x86 编译到 x64 平台。如果你们能帮助我解决这个问题,那就太好了。
有没有可能检查为什么没有加载dll。
提前致谢。
尝试使用 sysinternal 的进程监视器来查看您的应用程序要从哪里加载 dll。
LoadLibrary的 Win32 文档链接到有关它如何搜索 dll 的详细信息。
我曾经在这些方面遇到过问题。我有一个作为硬件接口的 C++ DLL,我需要从 C# 调用它。但是,如果没有插入硬件,则会导致 DllImport 调用失败。这是因为 DLL 初始化函数返回失败,所以 C# 只是说它无法加载 DLL,可能与 where 无关DLL是。
当您在 C 代码中设置 DLL 时,请检查您是否没有导致某种错误。
Dependency Walker是分析 dll 用于加载的内容的好工具。对于本机可执行文件,它也可以加载 exe 并使用“配置文件”菜单条目甚至显示使用延迟加载加载的 dll,如果仅加载 dll,则不会显示。