2015-10-21 5 views
0

При написании программ с использованием SDK в июне 2010 года необходимо включить в программу установки несколько распространяемых файлов кабины, чтобы программа запускалась при свежих установках Windows.Нужно ли перераспределять DirectX из Windows SDK?

DirectX теперь включен в Windows SDK, но я не смог найти информацию о том, требуется ли какой-либо перераспределяемый материал при создании установщика. Предположим, я использую Windows 10 SDK. Будет ли моя программа работать только с новой установкой Windows 7? Или есть какая-то перераспределяемая, которую мне не хватает?

Вот что я нашел себя:

1) Кажется, что есть каталог «Redist» в директории Windows 10 SDK, который содержит d3dcompiler_47.dll и d3dcsx_47.dll. Мое предположение заключается в том, что если эквивалентные libs связаны, тогда мне нужно будет перераспределить эти dll с моим приложением, а в противном случае - нет. Это так?

2) Мое подозрение, что Microsoft отказалась от использования DLL для DirectX, и теперь она просто статически связана. Это объясняет, что не нужно перераспределять любые DLL. Я также не вижу dll d3d11 в каталоге C: \ Windows \ System32, который, похоже, поддерживает это подозрение. Однако d3d11.lib всего 15kb, что заставляет меня думать, что там где-то должна быть dll. Это как-то включено в Windows? Даже новая версия Windows 7? Был ли он распространен с помощью Центра обновления Windows?

Может ли кто-нибудь сообщить мне, если моя забота действительно? Я просто пытаюсь убедиться, что мой установщик включает в себя все, что пользователь Windows 7 или новичок должен будет запустить мою программу, которая использует DirectX 11 из Windows 10 SDK.

ответ

2

С 2004 года DirectSetup (aka DXSETUP) never устанавливает «DirectX». Он не устанавливает Direct3D, DirectDraw, DirectSound, DirectInput, DirectPlay, DirectSound, DirectMusic, DirectShow и т. Д. Все, что вы можете назвать «DirectX», является частью ОС на Windows XP с пакетом обновления 2 (SP2) и может обновляться только с помощью Центра обновления Windows, Пакеты обновления или новые версии операционной системы.

Для развертывания Runtime Direct3D 11, как правило, см. Direct3D 11 Deployment for Game Developers. Короткий ответ состоит в следующем: требуется Windows 7 в качестве минимальной спецификации и не беспокоиться об этом :)

Единственное DXSETUP когда-либо устанавливает это «факультативный бок о бок» компонентов, таких как DLLs D3DX9, D3DX10 , D3DX11, XInput 1.3, XAudio 2.7, XACT, D3DCompile # 43, D3DCSX # 43 и устаревшие сборки Managed DirectX 1.1.

См. Not So DirectSetup и KB179113.

С ОС Windows 8, XInput 1.4 и XAudio 2.8 были добавлены в ОС. XInput 1.4 и XAudio 2.8 никогда не устанавливаются DXSETUP, но старый XInput 9.1.0 включен в Windows Vista или более поздней версии и обычно достаточен для большинства потребностей.

XNAMath заменен на DirectXMath, который является частью Windows SDK. Все это встроено, поэтому у него нет библиотеки ссылок или DLL.

Все версии D3DX9, D3DX10 и D3DX11 устарели, как и XACT. См. MSDN и Living without D3DX.

Для Windows SDK у вас есть библиотеки заголовков и ссылок для «DirectX» DLLs, которые являются частью ОС. См. A Brief History of Windows SDKs.

Для поддержки Windows 7 развития, вы можете REDIST D3DCompile # 46, # 47 D3DCompile, D3DCSX # 46 и # 47 D3DCSX DLLs применение локальной с настольным приложением Windows. Это файлы REDIST, которые вы нашли. См. HLSL, FXC, and D3DCompile.

С ОС Windows 8.1 D3DCompile # 47 также входит в состав ОС. Если вам требуется Windows 8.1 или Windows 10 в качестве минимальной спецификации, вам даже не нужно иметь ее локально-приложение.

Так, чтобы подвести итог: Вы можете написать и отправить на 11 приложение Direct3D, который работает на Windows 7 и не сделать использование наследия DirectX SDK или унаследованной DXSETUP на всех. Единственный случай исключения - если вам нужно использовать XAudio 2.7, в этом случае вы должны обрезать заголовки и REDIST до абсолютного минимума для этого случая.

См The Zombie DirectX SDK и Where is the DirectX SDK (2015 Edition)?

Что касается где различные DirectX SDK образцы и инструменты в конечном итоге, см DirectX SDK Samples Catalog и DirectX SDK Tools Catalog.

+0

Спасибо! Это очищает меня. Отличный ответ :) – dclamage