Стоит у меня DirectX. Да и хрен бы с ним, но угораздило меня поставить игрушку, не будем говорить, какую, но... Эта игрушка попыталась при установке воткнуть свой собственный DX, причём скачав его из инета. Попытка соединения с инетом была успешло фаером обнаружена и послана мной на..., потому что трафик не халявный. В результате игрушка типа поставилась, но при запуске выдаёт, что библиотека d3dx9_34 не найдена, так что обломись. Вопрос такой: это чё, щас так модно, чтобы к каждой игрушке прилагался свой особый, неповторимый и нихрена не стандартный DirectX?!
CyberManiac Вот волну погнал. В этой библиотеке вспомогательный функционал(например загрузка текстур), без него можно, но грустно. Всё там стандартно, поставь свежий редист.
Эм, дык это нормально. Игра написана под более высокую версию DirectX, а расширения функционала МС как раз и делает в дополнительных библиотеках со странными с именами типа d3dx9_xx.dll . Если забить на все, то можно слить библиотеку отдельно, в 90% случаев работает.
BLiTZ Фишка в том, что у меня в системе уже была библиотека d3dx9_40.dll. Которая как бы более высокой версии, но если её переименовать в ..._34.dll, вместо графики - чёрный экран. Отрыл старую винду - просто ахренел, там из этих нумерованных dll вообще целый зоопарк на 70 мегабайт, и все - разные. Ну не уроды ли?
CyberManiac +100 Booster дык это и отличает грамотную разработку - совместимость. умные люди тщательно планируют интерфейс/протокол, чтоб не заменять все каждый раз. а когда дерешь с миру по нитке по-быстрому, какое может быть серьезное продумывание? тут спешить надо, как бы хозяин не проснулся и пендалей не надавал. с другой стороны, неужели настолько разный функционал у всех этих msvcrt, msvcrt7, msvcrt8, ..., что все это нельзя было впихнуть в одну либу? одно слово - халтура. по богачу, но халтура. как весь язык васик - тежелопохмельный бред недоучившего фортран. причем чем дальше тем хуже. последовательно поставил и висту и 7рку нескольких сортов. глюк и у оси тяжелая паранойя - полузагрузка, месажбох с визгом "за мной следят! ах, это ты!!" и завал в перегрузку. вот, вернул назад хп и вроде как комп проапгрэйдил раза в 4.. эх, если б не железо, еще бы назад вернулся.. нт4 - 20мб озу..
CyberManiac, да, у меня этих d3dx9 с 24 по 41-ю, 34 тоже есть. Такой подход к библиотекам правда.. Легче назвать d3dx9.dll, например, а в программе проверять версию, если важно что-то новое. И делать поддержку старых функций в обновленных либах, совместимость так сказать...
дык, вообще там не обязан быть полностью реализован интерфейс 34, там может быть только дополнительные возможност.
Называют по разному, потому что в ней из версии к версии могут быть убраны/добавлены некоторые методы из интерфейсов. Посмотрите сравните include файлы разных сдк. А прога скомпилена с вызовом нужного метода с требуемым смещением в таблице адресов, отсюда и нестыковка. Поэтому от зоопарка не получится отказаться. Скопирую библиотеку с другого компа и не парься.
keYMax а) только если изменен сам вызов с удалением старого варианта, а не простой перегрузкой б) если добавлены виртуальные методы перед теми, что уже есть. в) если добавлены или серьезно перекроены данные класса. если такое происходит при каждом релизе 5 раз в год и все внутри одной версии, то ничем кроме поспешного планирования (или вообще без него) это объяснить нельзя. и называется это халтура. даже совковые запоры делали лучше Booster ?? може я ошибаюсь, но 97% методов там одинаковые (хотя, может реализованы и по разному. сомнительно, конечно, но все же). так зачем лепить разные либы? + либС еще с чстично пересекающимся функционалом. я уж молчу, что все эти либс, и куча мсвсрт дублирует выньапи которое все равно есть. вопрос - зачем это? или в мс не знают, что они делают? а на какой платформе - есть такие, но я просто скажу, что сам ДХ мс купило (или выдавило? ситуация ведь критическая была) и основные интерфейсы не менялись, а только мало-мало дополнялись версии до 8мой (или даже до 10той?). во всяком случае 3д проги писаные с 3тьим сдк работают прекрасно и безо всяких вопросов и под вистой (дх10). и интерфейсы перекраивать не приходилось и длли счас искать-добавлять тоже не. это называется грамотное планирование. с умом работала та контора. есть и лучше примеры, но достаточность лучше лучшести
OpenGL это аналог d3d9, d3d10. Их меняют редко, при переходе на новую версию. Концептуально d3dx (extension) был задуман, для широкого изменения, чтобы можно было легко вносить новый функционал и убирать устаревший. Кто не хочет, тот для этих целей юзает сторонние библиотеки. Формат, функционал. Иначе развитие компиляторов встанет. А как же кроссплатформенность?
_basmp_ именно так и есть в большинстве случаев. это раньше были релизы раз в два месяца четко, поэтому время на обдумывание у них было мало, да и изменения были смешными, два-три метода во всем СДК, да пара флагов. В этом году вышло всего два релиза за март и август, что явно лучше. Пусть не часто зато более весомо. OpenGL отдельная песня. Зоопарк из расширений.
keYMax, а ради чего вообще Мелкософт клепает все эти высеры? Не хотят делать DX10 под XP - ну пускай замораживают девятку как есть и не фачат моск. Или делают нормальные DX 9.1, 9.2, 9.3 и т.д., которые можно написать в системных требованиях и которые будут обратно совместимы без кучи кривых костылей. А то, что сейчас имеется - "мы его слепили из того, что было", а было только то, из чего пожарники не получаются.
Booster не совсем так, например интерфейс огл основан не на С++ классах и потому не имеет проблем с их модификацией. кроме того, отличие в том, что гл существовал задолго до вынь/дх и, не смотря на суету вокруг дх, видимо, просуществует дольше. например, изза переносимости. в том числе и в пределах разных выней. не знаю как развитие компиляторов к куче мсвсрт с дубликатами контента и в чем само развитие компиляторов основанных на С рантайме от мс. ну а формат и функционал, думаю, вы просто к слову написали а кросплатформенность каким боком к мсвсрт? keYMax ну так и я говорю - халтура. если каждые пару месяцев-полгода несовместимо меняются интерфейсы, то это даже не бета, а натуральная альфа или даже ресерч, но точно не релиз. халтура одним словом Booster скорее для маркетологов и пускающих слюни крутоподростков. и не пользоваться не получается. чем дальше в лес, тем больше мс вопрос ставит именно так. а все она, нвидия. если б не эта победительница 3дфх-а мс уже б серьезно задумался, что рс когдато назывались "ибм"
_basmp_ Ты похоже не в курсе, что творилось и продолжает твориться с желе. Оно переизбытилось устаревшим, фиг знает как работающим функционалом и расплывчатыми требованиями. Какой-то просвет забрезжил с выходом OpenGL 3, но оно всё время идёт позади DirectX. Классы или функции это всего лишь внешний фасад. Расширения OpenGL это и благо и проклятие одновременно. Не даром в OpenGL 3 сделали жёсткие профили. Что касаемо экстеншена DirectX, то его никто не заставляет использовать, всё это вполне реализуемо сторонними библиотеками. Он именно и задумывался, как легко модифицируемый и постоянно расширяемый. Причём здесь халтура? У нас вроде речь была о том, зачем он нужен если есть winapi? Если не в курсе, там реализованы стандартные функции С/С++ и впомогательный функционал поддерживающий эти языки на бинарном уровне. ^)