Почему CoCreateInstanceFromApp отсутствует в сборке ARM поверх сборки x64?

На этот вопрос еще нет ответа
Я знаю, что означает неразрешенный внешний символ - я спрашиваю, почему при создании в качестве ARM функции DirectX для моего проекта отсутствуют. Когда я строю свой проект DirectX для Raspberry Pi, я получаю ссылки на ошибки ниже. Почему CoCreateInstFromApp отсутствует только для сборки ARM?

Документация Microsoft по CoCreateInstanceFromApp подразумевает, что он должен просто присутствовать в любом исполняемом файле Windows - это фактически то, что я вижу при создании версий для одного и того же проекта для x86 или x64. Он должен присутствовать, поскольку DirectX поддерживает архитектуру ARM - или я что-то пропустил?

Проект в том числе d3d11.lib & dxgi.lib, который я предположил, он выберет из правильного каталога - но не получит никаких конкретных ошибок об этих библиотеках. Проект C++ в Visual Studio 2017 Pro v15.8.7.

Ошибка отредактированной ссылки:

DirectXTK_ARM.lib: ошибка LNK2019: неразрешенный внешний символ __imp_CoCreateInstanceFromApp, на который ссылается функция "long __cdecl CoCreateInstance...

DirectXTK_ARM.lib: ошибка LNK2019: неразрешенный внешний символ __imp_PropVariantClear ....


Больше информации, если требуется:

Я изменил этот образец Desktop Duplication от Microsoft, чтобы сделать снимок экрана вместо дублирования, и таким образом удалил код окна и использовал DirectXTK для сохранения файла. Это прекрасно работает на моем рабочем столе и на Minnowboard (x64 Win10 IoT). Но если я попытаюсь скомпилировать для Raspberry PI (ARM), произойдет сбой с ошибкой ссылки:

DirectXTK_ARM.lib (WICTextureLoader.obj): ошибка LNK2019: неразрешенный внешний символ __imp_CoCreateInstanceFromApp, на который имеется ссылка в функции "long __cdecl CoCreateInstance(структура _GUID const &, структура IUnknown *, структура без знака *, длинная строка); @ YAJABU_GUID @@ PAUIUnknown @@ K0PAPAX @ Z)

DirectXTK_ARM.lib (WICTextureLoader.obj): ошибка LNK2019: неразрешенный внешний символ __imp_PropVariantClear, на который ссылается функция "long __cdecl ` анонимное пространство имен "::CreateTextureFromWIC(struct ID3D11Device *,struct ID3D11DeignignTignEignEignEignExt), беззнаковое целочисленное значение, беззнаковое целочисленное значение, беззнаковое целочисленное значение, структура ID3D11Resource *, структура ID3D11ShaderResourceView *)" (?CreateTextureFromWIC@?A0x2b71c33d@@YAJPAUID3D11Device@@PAUID3D11DeviceContext@@PAUIWICBitmapFrameDecode@@IW4D3D11_USAGE@@IIIIPAPAUID3D11Resource@@PAPAUID3D11ShaderResourceView@@@Z) 1

1 ответ

Решение

CoCreateInstance а также PropVariantClear являются частью ole32.lib,

Приложения UWP должны связываться с зонтиком WindowsApp.lib, но вы также можете ссылку на зонтик mincore.lib для приложений IoT.

Другие вопросы по тегам