这个问题还没有答案
我知道未解析的外部符号是什么意思——我特别问为什么在构建为 ARM 时,我的项目缺少 DirectX 功能。当我为 Raspberry Pi 构建 DirectX 项目时,出现以下链接错误。为什么只有 ARM 版本缺少 CoCreateInstFromApp?
CoCreateInstanceFromApp上的 Microsoft 文档暗示它应该简单地存在于任何 Windows 可执行文件中——这实际上是我在构建同一项目的 x86 或 x64 版本时所看到的。它应该存在,因为 DirectX 确实支持 ARM 架构 - 还是我错过了什么?
该项目包括d3d11.lib
& dxgi.lib
,我认为它会从正确的目录中获取 - 但没有得到关于这些库的具体错误。该项目是 Visual Studio 2017 Pro v15.8.7 中的 C++。
编辑链接错误:
DirectXTK_ARM.lib:错误 LNK2019:函数“long __cdecl CoCreateInstance ...
DirectXTK_ARM.lib:错误 LNK2019:未解析的外部符号 __imp_PropVariantClear ....
更多信息,如果需要:
我已更改 Microsoft 的此桌面复制示例以进行屏幕截图而不是复制,因此删除了窗口代码并使用DirectXTK保存文件。这在我的桌面和 Minnowboard (x64 Win10 IoT) 上效果很好。但是,如果我尝试为 Raspberry PI (ARM) 进行编译,它会因链接错误而失败:
DirectXTK_ARM.lib(WICTextureLoader.obj):错误 LNK2019:函数“long __cdecl CoCreateInstance(struct _GUID const &,struct IUnknown *,unsigned long,struct _GUID const &,void * *)”中引用的无法解析的外部符号 __imp_CoCreateInstanceFromApp (?CoCreateInstance@ @YAJABU_GUID@@PAUIUnknown@@K0PAPAX@Z)
DirectXTK_ARM.lib(WICTextureLoader.obj):错误 LNK2019:函数“long __cdecl `anonymous namespace'::CreateTextureFromWIC(struct ID3D11Device *,struct ID3D11DeviceContext *,struct IWICBitmapFrameDecode *,unsigned int,enum D3D11_USAGE,unsigned int)中引用了无法解析的外部符号 __imp_PropVariantClear ,unsigned int,unsigned int,unsigned int,struct ID3D11Resource * *,struct ID3D11ShaderResourceView * *)" (?CreateTextureFromWIC@?A0x2b71c33d@@YAJPAUID3D11Device@@PAUID3D11DeviceContext@@PAUIWICBitmapFrameDecode@@IW4D3D11_USAGE@@IIIIPAPAUID3D1APResource@@P@PAPAUID3D1APD1ShaderResource@@PView) 1