UWP应用在Xbox平台调用LoadPackagedLibrary报ERROR_MOD_NOT_FOUND
UWP应用Xbox端
LoadPackagedLibrary动态加载DLL失败问题 开发基础场景
- 正在开发UWP应用,计划通过
LoadPackagedLibrary(...)函数动态加载自主编写的动态链接模块,该模块采用/ZW /EHsc参数编译 - 受库的构建架构限制,所有依赖组件必须采用动态加载方式引入
- 已将目标DLL纳入项目并设置为部署内容,且已验证该DLL可按预期正常同步到Xbox设备
故障表现
- Windows桌面环境下运行该应用时,所有功能均符合预期
- 应用部署到Xbox平台启动后,调用
LoadPackagedLibrary(...)会返回ERROR_MOD_NOT_FOUND错误 - 从Visual Studio输出窗口可观察到Xbox端的加载行为:目标DLL被加载完成后立刻被卸载,对应日志如下:
"DAServerUWP.exe" (Win32): "D:\DevelopmentFiles\<<MYAPP>>\SampleDAClient.dll" geladen. Symbole wurden geladen. "DAServerUWP.exe" (Win32): "D:\DevelopmentFiles\<<MYAPP>>\SampleDAClient.dll" wurde entladen.
初步排查过程
- 最初怀疑问题与
Package.appxmanifest未正确(甚至完全未)声明该DLL组件有关,但查阅公开网络资料后未找到足够有效的参考方案,现有网络上提出的解决方案也均未解决问题 - 后续排查将怀疑方向聚焦到DLL的依赖项配置上
项目配置补充说明
- 当前DLL在
.vcxproj工程文件中的配置代码片段如下:
<ItemGroup> <None Include="SampleDAClient.dll"> <DeploymentContent>true</DeploymentContent> </None> </ItemGroup>
- 依赖结构对比:
- 自主编写的DLL依赖项结构:

- 上述自研DLL的依赖结构与标准原生UWP DLL的依赖结构存在显著差异,标准原生UWP DLL的依赖结构参考:

- 自主编写的DLL依赖项结构:
内容的提问来源于stack exchange,提问作者Ohjurot
相关产品推荐
相关产品推荐

