Компиляция приложения DX 9.0c против March09SDK => Не может запускаться со старыми библиотеками DLL DX 9.0c => Проблема :)

StackOverflow https://stackoverflow.com/questions/1018872

  •  06-07-2019
  •  | 
  •  

Вопрос

Я не могу создать сценарий из subject .

У меня установлен DirectX 9 March 2009 SDK, который равен 9, "sub"-версия c, но "sub-sub"-версия 41, поэтому библиотеки (d3dx9.lib d3d9.lib) связывают экспорт с dxd3d_41.dll .

Что происходит, когда я пытаюсь запустить свое приложение на компьютере, который имеет DX9.0c, но не распространяется с марта 2009 года, теперь очевидно :), происходит сбой, потому что он не может найти dxd3d_41.dll.

Каково стандартное решение этой проблемы?Как я должен скомпилировать свое приложение, чтобы оно поддерживалось всеми машинами, имеющими DX 9.0c?Достижимо ли это вообще?

Спасибо

Это было полезно?

Решение

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

Единственный способ заставить это работать на ВСЕХ машинах с установленным DirectX9c - это использовать старый SDK (первый SDK 9.0c).Однако я настоятельно рекомендую избегать этого.Вам гораздо лучше просто использовать March 09 и установить March runtimes вместе с установкой вашего приложения.

Другие советы

Самым простым решением является ссылка на средство обновления среды выполнения Microsoft DirectX для конечных пользователей на вашей странице загрузки и указание пользователям сначала запустить его, чтобы убедиться, что компоненты среды выполнения обновлены, прежде чем устанавливать ваше приложение.

После этого следующая самая простая вещь - связать необходимое средство обновления среды выполнения с вашим приложением и попросить пользователей запустить его перед запуском вашего установщика.

Все это задокументировано в документации SDK.

Правила таковы, что если вы ссылаетесь на d3dx9, то от вас ожидается, что вы убедитесь, что установлены необходимые компоненты среды выполнения redist.

Взгляните на страницу "Установка DirectX для разработчиков игр" в документах DXSDK.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top