MisterGrim
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: В составе DirectX9 есть взамен dplayx.dll. Насколько я понимаю устройство DirectX, к его библиотекам программы не обращаются напрямую. Библиотеки регистрируются, то есть то есть прописывают в реестре, какие функции они готовы выполнить и как их найти (по идентификаторам), если понадобятся эти функции. То есть имеет место своего рода "косвенная адресация", при которой всё равно, как именно называется библиотека. | Нет, дела обстоят не так: если приложение использует DPLAY.DLL (или любую другую библиотеку), то у него оно прописано в таблице импорта (если не используется динамическая загрузка), и используются оттуда функции вида DirectPlayCreate/DirectPlayEnumerate (для данного случая). То есть это обычная DLL, с обычным набором функций, которые можно вызывать хоть из ассемблерного кода. А всё, что прописано в реестре, используется уже для внутреннего функционирования DirectX. Цитата: Всё, что написано после неё, уже должно работать с ним как положено, а из более старых игр - есть ли что хорошее? Для проверки отрезал библиотеки для поддержки старья. Прошло около 2 лет, и ни одной жалобы. | Это свидетельствует только о неразборчивости скачавших... Навскидку: не работает Need for Speed SE и Doom: Collectors Edition. Хочу обратить внимание, что при нормальном сценарии использования системы (ставим Win98SE/накатываем DirectX 9.0) файл DPLAY.DLL у нас остаётся. И в Windows XP (который уже со встроенным DX9) этот файл, тем не менее, присутствует. |