Поделиться через


Связывание статических и динамических библиотек (Direct3D 10)

Для правильной работы приложения на хост-компьютере должны быть установлены соответствующие библиотеки DLL. Эти библиотеки DLL могут быть предоставлены операционной системой или распространяемым пакетом приложений.

Библиотеки загружают соответствующие библиотеки DLL

Библиотеки, входящие в состав пакета SDK для DirectX, автоматически загружают соответствующие библиотеки DLL во время выполнения. Исключением из этого правила является d3dx10.lib/d3dx10d.lib, который загружает d3dx10.dll, поставляемый с этой версией пакета SDK. Например, если скачанный пакет SDK содержит d3dx10_33.dll и d3dx10_34.dll, то библиотека (d3dx10.lib), поставляемая с этим пакетом SDK, будет загружаться d3dx10_34.dll. Если позже будет установлен последующий пакет SDK, содержащий d3dx10_35.lib, файл d3dx10.lib из предыдущего пакета SDK будет по-прежнему загружаться d3dx10_34.dll. Файл d3dx10.lib из нового пакета SDK загрузит d3dx10_35.dll.

Распространение двоичных файлов

Распространять можно только d3dx10.dll (и последующие версии одного и того же файла). Чтобы повторно распространить этот файл, необходимо использовать функцию DirectXSetup . Дополнительные сведения об использовании этой функции и создании распространяемого пакета см. в статье Установка DirectX с помощью DirectSetup. Все остальные необходимые двоичные файлы включены в Windows Vista. Единственными двоичными файлами, которые можно распространить, являются двоичные файлы, расположенные в следующем каталоге.

(SDK root)\Redist

В следующей таблице описаны двоичные файлы, о которых следует знать разработчикам.

Двоичные файлы Direct3D 10 Описание
d3dx10.dll/d3dx10d.dll Розничная торговля и отладка компонентов D3DX10; компоненты розничной торговли можно распространить в REDIST CAB.
d3d10ref.dll Растеризатор ссылок. Предоставляет программную реализацию графического конвейера. Входит только в состав пакета SDK для Windows или устаревшего пакета SDK Для DirectX и не может распространяться. Растеризатор ссылок предназначен только для отладки. Явное связывание не требуется; Попытка создать эталонное устройство (см . D3D10CreateDevice) загрузит эту библиотеку DLL, если она присутствует.
d3d10sdklayers.dll Ряд служебных программ пакета SDK, которые действуют как уровень между вызовами API и выполнением среды выполнения, включая уровень отладки и уровень переключения на ссылку. Явное связывание не требуется; Если устройство создано с соответствующим флагом слоя, эта библиотека DLL загружается автоматически. Этот компонент предназначен только для разработки и отладки. Входит только в состав пакета SDK для Windows или устаревшего пакета SDK Для DirectX и не может распространяться.

 

Руководство по программированию для Direct3D 10

Графика Direct3D 10