【问题标题】:Windows Embedded Standard 7 won't find my .dllWindows Embedded Standard 7 找不到我的 .dll
【发布时间】:2016-04-28 18:53:24
【问题描述】:

几周前,我构建了一个本地 C++ .dll,它封装了一个第三方 .dll,以便在 WES7 中部署的几个应用程序中与 C# P/Invoke 一起使用。我一直在使用 Windows 10 作为开发盒,一切都按预期工作。本周我终于拿到了带有嵌入式 Windows 的盒子,但事情不再那么好了……我尝试部署三个不同的 C# 应用程序,这些应用程序使用我与第三方应用程序一起构建的 .dll,但它们都是失败并出现 DllNotFoundException。显然,这两个 .dll 文件与每个项目的可执行文件位于同一文件夹中,但我不断收到 DllNotFoundException。我的本机 .dll 针对 Win32 平台,嵌入式 Windows 是 32 位系统,而我所有的 C# 应用程序都是针对 x86 架构构建的,所以我已经排除了这种可能性。我浪费了最后一个小时来处理 system32 文件夹无济于事,所以我已经没有选择了。任何建议将不胜感激。

编辑:我刚刚与一位远程工作的同事交谈,他在尝试在 WES7 下运行我们的 .dll 时遇到了完全相同的问题。一旦我有更多信息,我会更新这个问题。

【问题讨论】:

  • 会不会是找不到一些支持dll文件?可能不是您的 dll,但第 3 方需要一些?
  • 除非第 3 方 .dll 使用桌面窗口中存在但在 WinCE 中不存在的其他 .dll,否则情况并非如此。尽管如此,我会调查一下
  • 这是并行错误吗?听起来很像。
  • 不,我不这么认为,即使我只有一个应用程序并且这些 .dll 只能在此文件夹中找到,它也开始发生

标签: c# c++ dll pinvoke windows-embedded-standard


【解决方案1】:

最后,我碰巧在目标机器上部署了一个DEBUG版本,没有msvcp100d.dll和msvcr100d.dll。我使用 Dependency Walker 来解决这个问题(显然,我很难查看项目属性页面下拉菜单)并在目标中部署了一个发布版本。它终于奏效了,但我有一个不同的问题导致另一个问题......

【讨论】:

    猜你喜欢
    • 2023-03-31
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-18
    相关资源
    最近更新 更多