Создание одного двоичного файла ARM для Windows 8.1 и Windows Phone 8.1

Я пытаюсь понять, возможно ли создать с помощью VS2013 один двоичный файл, который будет работать как на устройствах Windows 8.1, так и на устройствах Windows Phone 8.1 ARM.

Я создаю один проект универсальных приложений (в Visual C ++ -> Магазин приложений -> Универсальные приложения) для компонента среды выполнения Windows. Когда я создаю это, он генерирует два отдельных бинарных файла — для Windows и Phone.


Windows DLL

Входами компоновщика являются runtimeobject.lib и kernel32.lib

Дамп файла RuntimeComponent1.Windows \ RuntimeComponent1.Windows.dll
Изображение имеет следующие зависимости:

vccorlib120_app.DLL
msvcp120_app.dll
msvcr120_app.dll
ole32.dll
api-ms-win-core-winrt-string-l1-1-0.dll
KERNEL32.dll

Windows Phone DLL

Входами компоновщика являются WindowsPhoneCore.lib, RuntimeObject.lib и PhoneAppModelHost.lib

Дамп файла RuntimeComponent1.WindowsPhone \ RuntimeComponent1.WindowsPhone.dll
Изображение имеет следующие зависимости:

api-ms-win-core-com-l1-1-1.dll
vccorlib120_app.DLL
msvcp120_app.dll
msvcr120_app.dll
api-ms-win-core-util-l1-1-0.dll
api-ms-win-core-synch-l1-2-0.dll
api-ms-win-core-profile-l1-1-0.dll
api-ms-win-core-processthreads-l1-1-2.dll
api-ms-win-core-sysinfo-l1-2-1.dll
api-ms-win-core-libraryloader-l1-2-0.dll
api-ms-win-core-winrt-string-l1-1-0.dll

Я полагаю, что все зависимости в Phone также могут быть достигнуты для Windows также с помощью некоторых других библиотек импорта, кроме kernel32.lib. Это правильно? Есть ли способ достичь этого вообще? то есть создание одного двоичного файла ARM для Win8.1 и WP8.1?

Обновить

Я изменил настройки главы Windows, чтобы она ссылалась на mincore.lib, и специально проигнорировал kernel32.lib и ole32.lib. Теперь двоичные файлы Windows и Phone получают одинаковые зависимости:

Окна:

vccorlib120_app.DLL
msvcp120_app.dll
msvcr120_app.dll
api-ms-win-core-util-l1-1-0.dll
api-ms-win-core-synch-l1-2-0.dll
api-ms-win-core-com-l1-1-1.dll
api-ms-win-core-winrt-string-l1-1-0.dll
api-ms-win-core-profile-l1-1-0.dll
api-ms-win-core-processthreads-l1-1-2.dll
api-ms-win-core-sysinfo-l1-2-1.dll
api-ms-win-core-libraryloader-l1-2-0.dll

Телефон с операционной системой Виндоус:

vccorlib120_app.DLL
msvcp120_app.dll
msvcr120_app.dll
api-ms-win-core-util-l1-1-0.dll
api-ms-win-core-synch-l1-2-0.dll
api-ms-win-core-com-l1-1-1.dll
api-ms-win-core-profile-l1-1-0.dll
api-ms-win-core-processthreads-l1-1-2.dll
api-ms-win-core-sysinfo-l1-2-1.dll
api-ms-win-core-libraryloader-l1-2-0.dll
api-ms-win-core-winrt-string-l1-1-0.dll

Однако это возможно только для x86, так как Windows 8.1 SDK не содержит импорта lib mincore.lib для ARM

1

Решение

Мне удалось получить mincore.lib для ARM в Windows Driver Kit (WDK) для Windows 8.1: https://msdn.microsoft.com/library/windows/hardware/dn249725%28v=vs.85%29.aspx

Он устанавливается в папке Windows Kits, как для Windows 10 SDK.

0

Другие решения


По вопросам рекламы [email protected]