Где есть что почитать на темы или ваши коментарии:
1) Почему не работают некоторые "старые" (для ХР) программы под Вистой и что именно надо менять в них программисту, что бы они работали. Желательно с точки зрения WinAPI и С++.
2) Какие новые проблемы для разработчика будут, если её поставить на комп разработчика. Например, по типу, что может какая-то версия висты не даст отлаживать или ещё что-то — мало ли что там могли намудрить.
3) Есть ли стоящие внимания новшества в WinAPI.
PS: Не уверен, что это сюда вопрос, но вроде больше некуда.
16.01.08 11:23: Перенесено модератором из 'Прочее' — Хитрик Денис
Здравствуйте, Sakura-chan, Вы писали:
SC>1) Почему не работают некоторые "старые" (для ХР) программы под Вистой и что именно надо менять в них программисту, что бы они работали. Желательно с точки зрения WinAPI и С++.
По опыту:
1) Административные права требуются, ситуация отсутствия нормально не отрабатывается
2) Используется низкоуровневое API для работы с микшером
3) Некоторые моменты при воспроизведении видео не полностью совместимы.
SC>2) Какие новые проблемы для разработчика будут, если её поставить на комп разработчика. Например, по типу, что может какая-то версия висты не даст отлаживать или ещё что-то — мало ли что там могли намудрить.
Версия студии нужна минимум VS2005 + SP1 + Vista update. Ну и запускать нужно из под админа, если отлаживаемая программа требует админских прав.
SC>3) Есть ли стоящие внимания новшества в WinAPI.
Хм. Зависит от потребностей. К примеру, из user32, сильно изменилось API стандартных диалогов, появился стандартный контрол — дерево каталогов.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
Здравствуйте, Sakura-chan, Вы писали:
SC>1) Почему не работают некоторые "старые" (для ХР) программы под Вистой и что именно надо менять в них программисту, что бы они работали. Желательно с точки зрения WinAPI и С++.
Потому что там, наконец, взялись за безопасность. Например, программам, запущенным от юзера, не дозволяется (что и логично) лезть в Program Files, что, тем не менее, многие пытаются делать.
SC>2) Какие новые проблемы для разработчика будут, если её поставить на комп разработчика. Например, по типу, что может какая-то версия висты не даст отлаживать или ещё что-то — мало ли что там могли намудрить.
А нахрена она разработчику? Это тестерам надо разные версии всех поддерживаемых ОС.
SC>3) Есть ли стоящие внимания новшества в WinAPI.
Так даже если есть, всё равно ими нельзя пользоваться из соображений обратной совместимости.
Я бы сказал, какая ОС лучше всего для программиста, но в этом форуме это как-то оффтопик ;-)
Здравствуйте, Roman Odaisky, Вы писали:
SC>>1) Почему не работают некоторые "старые" (для ХР) программы под Вистой и что именно надо менять в них программисту, что бы они работали. Желательно с точки зрения WinAPI и С++. RO>Потому что там, наконец, взялись за безопасность. Например, программам, запущенным от юзера, не дозволяется (что и логично) лезть в Program Files, что, тем не менее, многие пытаются делать.
Т.е. в другую чем своя папка? Или нельзя ссылаться на свою папку тоже через "Program Files" (ну или через то что винда даст).
RO>А нахрена она разработчику? Это тестерам надо разные версии всех поддерживаемых ОС.
Ну хотя бы потому, что скоро XP прекратят выпускать. Я слышал, что через месяц (конец февраля). Все новые компы будут с вистой. Рано или поздно ХР будет исчезать же. Ноутбуки уже только с вистой, например, кроме старых партий совсем.
SC>>3) Есть ли стоящие внимания новшества в WinAPI. RO>Так даже если есть, всё равно ими нельзя пользоваться из соображений обратной совместимости.
Дык опять же Пользуются же новшествами ХР, не смотря на совместимость с 2000 и 98. Чаще всего опционально.
Просто любопытно, что интересного там есть.
RO>Я бы сказал, какая ОС лучше всего для программиста, но в этом форуме это как-то оффтопик
И из под оффтпичной ОС отлаживать проги под винду? Я б не решился
Здравствуйте, Sakura-chan, Вы писали:
SC>>>1) Почему не работают некоторые "старые" (для ХР) программы под Вистой и что именно надо менять в них программисту, что бы они работали. Желательно с точки зрения WinAPI и С++. RO>>Потому что там, наконец, взялись за безопасность. Например, программам, запущенным от юзера, не дозволяется (что и логично) лезть в Program Files, что, тем не менее, многие пытаются делать.
SC>Т.е. в другую чем своя папка? Или нельзя ссылаться на свою папку тоже через "Program Files" (ну или через то что винда даст).
Нет.
Админ, имеющий повсеместное право на запись, установил программу в Program Files\Someprogram (подобно /usr в оффтопике). Юзер запускает ее, меняет какие-то настройки, а программа пытается сохранить их куда-то в Program Files\Someprogram\Settings. Естественно, юзеру туда нельзя. Программа должна писать в Documents and Settings\юзер\Application Data\Someprogram. Аналогично, не следует трогать HKLM в реестре.
Здравствуйте, Roman Odaisky, Вы писали:
RO> программа пытается сохранить их куда-то в Program Files\Someprogram\Settings. Естественно, юзеру туда нельзя. Программа должна писать в Documents and Settings\юзер\Application Data\Someprogram. Аналогично, не следует трогать HKLM в реестре.
Понятно. Но это вовсе не естественно. В смысле — не логично. Юзер юзером, а программа программой. По логике вещей, папка программы — это её папка. Для неё она предназначена.
А для общих настроек предлагается "All Users", так?
Всё-таки разделение диска на личные папки не очень умно. В оффтопике всё иначе, а тут очень криво всё. Надо тогда файловая система что б от этот вся плясала. Я же могу и в D:\GAMES\ поствить прогу. И выйдет она вообще вне правил и логики.
Здравствуйте, Sakura-chan, Вы писали:
SC>Понятно. Но это вовсе не естественно. В смысле — не логично. Юзер юзером, а программа программой. По логике вещей, папка программы — это её папка. Для неё она предназначена.
Программа не человек. Никакой собственности ей не положено. Всё создаваемое программой являются результатом деятельности пользователя, его данными. Пользователь может работать с программой на разных компьютерах, может удалять и возвращать её, программа может использоваться несколькими пользователями, одновременно на одной машине. Всё это делает невозможной запись в Program Files.
Здравствуйте, Don Reba, Вы писали:
DR>Программа не человек. Никакой собственности ей не положено. Всё создаваемое программой являются результатом деятельности пользователя, его данными. Пользователь может работать с программой на разных компьютерах, может удалять и возвращать её, программа может использоваться несколькими пользователями, одновременно на одной машине. Всё это делает невозможной запись в Program Files.
Хм, попробую не согласиться с философской частью
Я бы сказал, что программа осуществляет свою деятельность. Но — по командам пользователя. Пользователь не сам создаёт эти данные и часто даже не подозревает, что за данные хранятся физически на диске и как они получились. Так же, как нельзя сказать, что директор фирмы (например M$) в результате своей деятельности создал, скажем, Windows. Он дал команду, может быть очень детальную, но он лично не создавал. Создавали сотрудники.
У программы могут быть свои собственные данные. Которые не предназначены для пользователя, не нужные ему лично и он прямо не просил программу их создавать. Например, какая-то статистика работы, какие-то настройки под конкретный комп, какие-то логи. Это вполне можно считать собственой информацией программы. Не в том смысле, что программа живая и имеет права на файлы, а в том, что эти файлы предназначены только для неё и ей созданы.
А вообще, нужно рассматривать всю папку программы как саму программу — это же её части, по сути. Может быть всё одним файлом, а может — набором файлов и папок. Аналог частей тела человека. Нельзя же сказать, что человеке не должен иметь своего мозга в процессе работы на директора, даже если результат работы принадлежит директору. То есть, программа должна иметь доступ к самой себе. По моему, это логично.
Хотя, конечно, можно (или нужно?) все внутренние данные программы хранить в "All Users", но зто несколько нелогично. All Users позразумевает, что это общая информация всех пользователей. Но это не информация пользователей вовсе — это внутренние данные программы. Они ни кому из пользователей не принадлежат и не нужны лично.
Здравствуйте, Sakura-chan, Вы писали:
RO>> программа пытается сохранить их куда-то в Program Files\Someprogram\Settings. Естественно, юзеру туда нельзя. Программа должна писать в Documents and Settings\юзер\Application Data\Someprogram. Аналогично, не следует трогать HKLM в реестре.
SC>Понятно. Но это вовсе не естественно. В смысле — не логично. Юзер юзером, а программа программой. По логике вещей, папка программы — это её папка. Для неё она предназначена.
Вполне логично. В Program Files юзеру писать нельзя. Из соображений безопасности. Админ поставил программу, а потом пришел Вася, влез в ее настройки и внедрил туда какую-то злонамеренную функциональность. Программа ведь исполняется от имени юзера и может делать всё то, но не более, что позволено самому юзеру.
SC>Всё-таки разделение диска на личные папки не очень умно. В оффтопике всё иначе, а тут очень криво всё. Надо тогда файловая система что б от этот вся плясала. Я же могу и в D:\GAMES\ поствить прогу. И выйдет она вообще вне правил и логики.
А в последних версиях Винды как раз структура директорий становится похожей на FHS. /usr — Program Files, /home — Documents and Settings, /etc — реестр, /var — неясно (Documents and Settings\All Users\Application Data?). Ага, кажется, понял. Ты о том, куда программе девать данные вроде какого-нибудь внутреннего кеша?
Здравствуйте, Roman Odaisky, Вы писали:
RO>Здравствуйте, Sakura-chan, Вы писали:
RO>>> программа пытается сохранить их куда-то в Program Files\Someprogram\Settings. Естественно, юзеру туда нельзя. Программа должна писать в Documents and Settings\юзер\Application Data\Someprogram. Аналогично, не следует трогать HKLM в реестре.
SC>>Понятно. Но это вовсе не естественно. В смысле — не логично. Юзер юзером, а программа программой. По логике вещей, папка программы — это её папка. Для неё она предназначена.
RO>Вполне логично. В Program Files юзеру писать нельзя. Из соображений безопасности. Админ поставил программу, а потом пришел Вася, влез в ее настройки и внедрил туда какую-то злонамеренную функциональность. Программа ведь исполняется от имени юзера и может делать всё то, но не более, что позволено самому юзеру.
И что? Все то же самое может случиться с любой папкой. Вся суть pf только в том, что там якобы лежат trusted apps
Здравствуйте, Roman Odaisky, Вы писали:
RO> Админ поставил программу, а потом пришел Вася, влез в ее настройки и внедрил туда какую-то злонамеренную функциональность. Программа ведь исполняется от имени юзера и может делать всё то, но не более, что позволено самому юзеру.
Я имею в виду, что в идеале должна быть ситуация, когда программа имеет доступ к только своей папке. Но юзер — не имеет. Т.е. для программы было бы если исключение из прав юзера. Хотя с другой стороны, конечно, если программа позволяет юзеру ковырять её саму через её же интерфейс, то это дыра будет... я не подумал с этой стороны
RO> А в последних версиях Винды как раз структура директорий становится похожей на FHS. /usr — Program Files, /home — Documents and Settings, /etc — реестр, /var — неясно (Documents and Settings\All Users\Application Data?).
Да, но никто не мешает мне поставить прогу в D:\GAMES, как я уже сказал. И получится исключение из всех правил. Потому что они распространяются только на Program Files. Разве что если закрыть юзерам всё кроме их личной папки...
RO> Ага, кажется, понял. Ты о том, куда программе девать данные вроде какого-нибудь внутреннего кеша?
Угу. Или логи, статистику, общие настройки. Как я уже писал в соседнем ответе, подойдёт All Users, вроде, но не логично снова — логи это не файлы пользователей, это личные файлы программы.
Здравствуйте, Sakura-chan, Вы писали:
RO>>Потому что там, наконец, взялись за безопасность. Например, программам, запущенным от юзера, не дозволяется (что и логично) лезть в Program Files, что, тем не менее, многие пытаются делать.
SC>Т.е. в другую чем своя папка? Или нельзя ссылаться на свою папку тоже через "Program Files" (ну или через то что винда даст).
Вообще-то это еще со времен NT была нормальная практика — просто многие юзеры сидят под админами и "ложили они на всякие дурные правила вражеского мелкософта" — а вот программ, которые этим занимаются... хех... Half-Life 2 и Steam.
Вообще уже давно в Windows есть специальные папки для всего по полочкам — есть документ соответствующий с _рекомндациями_ куда что следует класть.
RO>>А нахрена она разработчику? Это тестерам надо разные версии всех поддерживаемых ОС.
SC>Ну хотя бы потому, что скоро XP прекратят выпускать. Я слышал, что через месяц (конец февраля). Все новые компы будут с вистой. Рано или поздно ХР будет исчезать же. Ноутбуки уже только с вистой, например, кроме старых партий совсем.
+1. Но у нас — страна (обе) непуганных пиратов — просьба не поднимать флейм "хорошо/плохо".
ЗЫ: кстати, кто в курсе: когда объявлены предполагаемые окончания продаж XP?
SC>>>3) Есть ли стоящие внимания новшества в WinAPI. RO>>Так даже если есть, всё равно ими нельзя пользоваться из соображений обратной совместимости.
SC>Дык опять же Пользуются же новшествами ХР, не смотря на совместимость с 2000 и 98. Чаще всего опционально.
+1. За то, что все еще есть Win98, я бы, как разработчик "мультиплатформенных виндовых программ", пользователей бы расстреливал! Ну хорошо: частные пусть поживут еще — но корпоративные!!!
SC>Просто любопытно, что интересного там есть.
+1!
ЗЫ: у меня на ноуте — живая Виста! И памяти гиг всего одной планкой — на следующей неделе бегу покупать еще одну — вместо запланированных уже двух — дуракам, как говорится, везет! (это я так, о своем... )
RO>>Я бы сказал, какая ОС лучше всего для программиста, но в этом форуме это как-то оффтопик
SC>И из под оффтпичной ОС отлаживать проги под винду? Я б не решился
Учу: запускаешь виртуальную машину, ставишь туда винду, ставишь туда студию — и вперед и с песней!
Здравствуйте, The Lex, Вы писали:
TL>Вообще-то это еще со времен NT была нормальная практика — просто многие юзеры сидят под админами и "ложили они на всякие дурные правила вражеского мелкософта" — а вот программ, которые этим занимаются... хех... Half-Life 2 и Steam.
Не совсем всё так. Я, например, пытался сидеть под юзером в винде одно время. Проникся вопросом безопасности. Но очень скоро я отвык быстренько, когда часть программ заглючила что нету прав, для инсталяции или настройки системы надо переходить в админа и обратно (а я в то время ещё не знал про два сеанса, либо это была 2000 винда, забыл уже). Короче я быстро отучился от этого.
TL>+1. Но у нас — страна (обе) непуганных пиратов — просьба не поднимать флейм "хорошо/плохо".
Где как. В Питере все пирасткие точки уничтожили пол года назад. Они где-то может и есть, но с первого взгляда не найти. В Москве вот наоборот, всего полно. Странно даже, вроде у нас тут криминальная столица
TL>+1. За то, что все еще есть Win98, я бы, как разработчик "мультиплатформенных виндовых программ", пользователей бы расстреливал! Ну хорошо: частные пусть поживут еще — но корпоративные!!!
Много голов поляжет У нас есть программатор микросхем, который только под 98 работает и всё. И не выгодно покупать винду ХР, потом покупать новый программатор, к нему новое ПО... А уж про висту молучу даже.
TL>ЗЫ: у меня на ноуте — живая Виста!
У меня у рлдственников на рабочем ноуте виста. Причём у неё с ноутом какой-то симбиоз, туда ХР не поставить второй системой — она даже винта не видит -_- И в биосе настроек нету. Что-то где-то закрыто чем-то, явно. Первое же что виста натворила — сказала, что драйвер StarForce от лицензионного диска ей не нравится и всё. Знакомство с вистой началось с ругани, короче ^^ Мне любопытно даже, какой процент моих программ пойдёт под ней.
SC>>И из под оффтпичной ОС отлаживать проги под винду? Я б не решился TL>Учу: запускаешь виртуальную машину, ставишь туда винду, ставишь туда студию — и вперед и с песней!
Дык а смысл. Можно тогда в той же студии и отлажвиать. Зачем оффтопичная ОС — тормозить комп посредством виртуалки?
Здравствуйте, Roman Odaisky, Вы писали: SC>>3) Есть ли стоящие внимания новшества в WinAPI. RO>Так даже если есть, всё равно ими нельзя пользоваться из соображений обратной совместимости.
Можно явно запрашивать указатель на WinAPI-шную функцию с помощью GetProcAddress. Тогда программа будет работать и в старых версиях Windows.
Здравствуйте, Sakura-chan, Вы писали:
TL>>Вообще-то это еще со времен NT была нормальная практика — просто многие юзеры сидят под админами и "ложили они на всякие дурные правила вражеского мелкософта" — а вот программ, которые этим занимаются... хех... Half-Life 2 и Steam.
SC>Не совсем всё так. Я, например, пытался сидеть под юзером в винде одно время. Проникся вопросом безопасности. Но очень скоро я отвык быстренько, когда часть программ заглючила что нету прав, для инсталяции или настройки системы надо переходить в админа и обратно (а я в то время ещё не знал про два сеанса, либо это была 2000 винда, забыл уже). Короче я быстро отучился от этого.
Вот-вот. Между тем в больших корпорациях оказывается многие "простые пользователи" таки "сидят правильно" — и Program Files там вполне себе "только для чтения".
ЗЫ: я тоже не люблю — "не прочувствовал" — сидеть без админовских прав...
ЗЫ: но необходимости программам "писать только куда надо" это не отменяет!
TL>>+1. Но у нас — страна (обе) непуганных пиратов — просьба не поднимать флейм "хорошо/плохо".
SC>Где как. В Питере все пирасткие точки уничтожили пол года назад. Они где-то может и есть, но с первого взгляда не найти. В Москве вот наоборот, всего полно. Странно даже, вроде у нас тут криминальная столица
Дык я не про продажу — я про использование... Не знал?
TL>>+1. За то, что все еще есть Win98, я бы, как разработчик "мультиплатформенных виндовых программ", пользователей бы расстреливал! Ну хорошо: частные пусть поживут еще — но корпоративные!!!
SC>Много голов поляжет У нас есть программатор микросхем, который только под 98 работает и всё. И не выгодно покупать винду ХР, потом покупать новый программатор, к нему новое ПО... А уж про висту молучу даже.
Ты не понял... Одно дело — когда у вас "программатор микросхем, который только под 98 работает и всё" — тут надо с обратной стороны подходить: "у нас вин 98 и под нее только программатор работает и все". А вот когда под нее действительно "и все остальное тоже работает" — вот тогда и наступает...
TL>>ЗЫ: у меня на ноуте — живая Виста!
SC>У меня у рлдственников на рабочем ноуте виста. Причём у неё с ноутом какой-то симбиоз, туда ХР не поставить второй системой — она даже винта не видит -_- И в биосе настроек нету. Что-то где-то закрыто чем-то, явно.
Дык это rtfm — я по ходу многого начитался пока себе выбирал — чаще всего на установку XP на современную модель есть подробные и FAQ и туториал — в каких-то крайних особо случаях можно найти аналогичные по железу ноуты и описание к ним — но вроде как поставить XP все еще можно на любой ноут — и даже драйвера есть.
SC>... Первое же что виста натворила — сказала, что драйвер StarForce от лицензионного диска ей не нравится и всё. Знакомство с вистой началось с ругани, короче ^^ Мне любопытно даже, какой процент моих программ пойдёт под ней.
х.з. я вчера воткнул туда свой BT-USB (рекламная пауза: D-Link!) — так он тут же обнаружился и запросил драйвера (следует признать, что я неявно надеялся что волшебным образом уже есть какие-то стандартные). Дык я пошел, поскреб по сусекам, нашел родной диск (рекламная пауза: D-Link!), вставил, нажал "поехали!" — и все таки встало и... а, ну да: теперь надо туда еще PC Suite ((рекламная пауза: Nokia!) поставить и проверить связь с мобилкой...
Лично я скорее с обратной ситуацией сталкивался, когда новое железо на старых чипсетах + ОС 2000 не хотело работать "по полной" — зато на XP — "аж бегом!" И я, например, в XP люблю ее "мультяшные окна" — и не люблю когда отключают обратно в "серое казарменное безмолвие" (к)
Будем посмотреть. (к)
Все мы там будем. (к)
SC>>>И из под оффтпичной ОС отлаживать проги под винду? Я б не решился TL>>Учу: запускаешь виртуальную машину, ставишь туда винду, ставишь туда студию — и вперед и с песней!
SC>Дык а смысл. Можно тогда в той же студии и отлажвиать. Зачем оффтопичная ОС — тормозить комп посредством виртуалки?
Ну дык зато "под ОС" — причем "ОС" — с Особо Больших буков.
ЗЫ: а, например, как эффективно работать "в обратном порядке" — т.е. писать под "большую ОС", но работать под виндой?
О, кстати: ни у кого хорошего задачника по Юниксу и vi нету? Ну чтобы там упражнения были на закрепление материала. Или ссылки на таковой задачник или сами задачи. Но чтобы (желательно) действительно сильные с тренировочно-педагогической точки зрения.