Основной вопрос/резюме: Мне нужно ссылаться на двоичную (dll), созданную кем-то еще на C из проекта универсального приложения Win 10. Однако есть отдельная dll для x86 и arm. Я считаю, что мне нужно ссылаться на dll (или, по крайней мере, на winmd-файл) из проекта, для его развертывания, но я могу ссылаться только на один файл, не оба. Это означает, что приложение терпит неудачу на той или иной платформе (на рабочем столе или на телефоне), потому что в нее включена неправильная двоичная информация. Ищете решение.Ссылка на C Dll из Windows 10 Универсальное приложение на архитектуре ЦП
Более подробное объяснение;
Я пытаюсь написать универсальное приложение Windows (новый стиль Windows 10). Это означает, что у меня есть один проект, чтобы добавить ссылки на внешние компоненты.
У меня есть потребность в некоторых продуктах обработки изображений, которые лучше всего покупаются как сторонний компонент, а не разрабатываются в доме. Существует несколько SDK от сторонних сторон, которые поддерживают WinRT, но ни один из них не поддерживает UWA. Однако у WinRT SDK есть разные бинарные файлы для Windows Phone и Windows Desktop. и двоичные файлы созданы из источника C/C++. Это было прекрасно с более старыми «универсальными» приложениями, потому что был отдельный проект для телефона и рабочего стола, поэтому вы могли просто ссылаться на разные компоненты в каждом проекте, но теперь есть только один проект, чтобы добавить ссылки.
Я спросил одного поставщика о поддержке UWA, и они заявили, что это невозможно, они не могут создать единый бинарный файл для обеих платформ (arm vs x86), и они не знали, как мой UWA может ссылаться на право файл, когда приложение построено для соответствующей архитектуры (это то, что я предполагаю, должно произойти).
Я предположить есть некоторым образом (возможно, в winmd файле?), Чтобы сказать: «Эй, вот две копии одного и того же DLL для различных архитектур процессоров, выбрать тот, вы строите для» и так долго, как публичный API соответствует приложению, просто использует правильный?
Есть ли решение для этого? Кто-нибудь знает, как эта работа должна работать? Или мне просто не повезло?
Спасибо.
Возможно, поставщик компонентов может создать компонент WinRT, который делает правильную вещь; http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2014/05/30/windows-phone-8-1-more-universal-winrt-components.aspx - грустно, что в моем случае они этого не сделали. – Yort
Возможно также, что я могу самостоятельно упаковать файлы сторонних sdk в качестве расширения WinRT (что было бы похоже на редактирование файла csproj, но более многоразового использования в проектах); https: // MSDN.microsoft.com/en-us/library/jj127117.aspx – Yort