【问题标题】:WIndows-10 Mobile: "The specified module could not be found. (Exception from HRESULT: 0x8007007E)":nullWIndows-10 Mobile:“找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)”:null
【发布时间】:2016-08-30 07:37:49
【问题描述】:

我有一个面向桌面和移动平台的 UWP/Windows-10 的 C# 应用程序。 C# 应用程序调用用 C++ 编写的本机组件。我的本机 C++ 代码具有 Visual C++ 组件扩展 (C++/CX)。然后将本机代码打包为 .dll 并与应用程序捆绑在一起。


该应用程序在桌面上运行良好,即当我在 x86x64Local Machine 中运行它时,但遇到在移动设备(即 x86 Mobile EmulatorARM 设备(诺基亚 950)

上运行时出现此错误

找不到指定的模块。 (HRESULT 的例外情况: 0x8007007E)":null


基本上,我无法在 Mobile 模式下加载我的原生库。
我已经读过这个MSDN page。我的本机 C++ 代码没有使用任何不受支持的 api。


我尝试了 /"DWINAPI_FAMILY=WINAPI_FAMILY_APP"/D"WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP",但都没有帮助。

在为移动设备构建原生 .dll 时,是否需要使用一组不同的工具链?我的桌面和移动本机 .dll 使用相同的链接器设置/标志。
任何帮助将不胜感激

【问题讨论】:

    标签: c++ visual-studio-2015 windows-10-universal windows-10-mobile c++-cx


    【解决方案1】:

    这似乎是微软的问题。我与一些微软项目经理有联系。我为他们提供了一个展示这种行为的示例项目。
    他们分析了示例项目并说这确实是微软的问题。


    这里的问题是,当应用程序以桌面模式(x86 或 x64 本地计算机)部署时,“ucrt 在平台上已经可用”,因此应用程序运行良好。


    移动平台ucrt不可用,只有在项目中引用时才会推送。但是由于微软平台上的一些错误,这似乎没有发生,我无法在移动设备/模拟器上运行该应用程序。

    【讨论】:

    • 您能否提供更多有关您如何解决此问题的信息?或者即使它是可以解决的?我遇到了同样的问题,没有看到引用移动通用 CRT 的方法。谢谢
    • 嗨@CharlesR.PortwoodII,截至今天,此问题无法解决。 MS 移动框架必须为移动设备/模拟器引用和加载通用 CRT。当前框架无法加载 ucrt,因此我们需要等待 MS 在其框架中解决此问题。
    • The specified module could not be found. 在我的例子中错误表明包含的文件无法在移动设备上引用(在我的例子中是 )。 Windows 10 移动版确实可以在 10.0.10240+ 中访问 ucrt。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多