Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Баг... "Билли" опять напортачил :(


Автор: En_t_end 11.3.2005, 16:50
в программировании интуитивная логика занимает стандартное положение, обычно программисты ей пользуются, но вот похоже MS делать это не хочет. Лично мной сегодня был зарегестрирован один маленький, но очень противный баг в VISUAL 7.1, заключается в следующем :
Возьмите и удалите папку Temp, которая отвечает за хранение временных файлов(расположение сами думаю найдете). А теперь попробуйте создать или откомпилировать любой проект - и визуальте мега-глюк, причем не только с самим процессом, но и с gdi.
Вопрос:
Почему, если вдруг папка была удалена(случайно), она не может быть создана в процессе ? зачем такие замуты нужны ? ЗЫ я вообще испугался хотел студию переустанавливать.

Автор: DENNN 11.3.2005, 19:14
Ну и в чем тут баг? Я вот возьму завтра и своп файл удалю - куча больших программ просто повиснет.
Расположение временной папки - это настройки операционной системы. Если путь, указанный в переменной %TEMP%, не существует, то это проблемы админа, клиентское приложение не должно ее создавать.

Автор: En_t_end 11.3.2005, 21:06
Да ? smile
Ну тогда таким макаром, если так думать, то можно в своих ПО вообще не заботиться о существований директорий ))), пусть все к чертям летит, это не мои проблемы, а админа smile
Добавлено @ 21:10
Допустим у стримов fstream есть фича, если ты в open указал путь к файлу, и в нем встречается дирек. которая не сущ., то она будет создана, дык что мешало также микрам сделать для студии ?
Добавлено @ 21:13
Почему нормально настройки gdi не реализовали ?, что вдруг они делают в темпо ???

Автор: azesmcar 14.3.2005, 17:02
Цитата
Допустим у стримов fstream есть фича, если ты в open указал путь к файлу, и в нем встречается дирек. которая не сущ., то она будет создана, дык что мешало также микрам сделать для студии ?


С тем же успехом этой "фичи" могло не быть..и в документации было бы указано, если директории не существует функция работать не станет...не называть же это багом...просто это не входит в ее функции для этого есть функции DirectoryExists и CreateDirectory (например, названия точно не помню)..а если мне этого не нужно? я точно уверен что эта папка существует, а если ее не существует значит кто то удалил, чего он в принципе делать не должен был..и не нужно мне чтобы он кажый раз при вызове функции проверял существует ли данная директория...это как никак замедляет процесс...

Ну так вот, я не хочу чтобы моя программа работала медленно, и решаю не включать проверку существования директории в код...считаю что она должна быть..а если кто удалит пусть потом заново создает...другое дело что насколько вообще это возможно микрософт уже замедлил свои продукты и эта функция не внесла бы особую скоростную потерю в их производство...

Ну не сделали люди этого, все же это не баг...smile

Автор: maxim1000 14.3.2005, 17:32
по-моему, папка Temp является системной (по крайней мере, где-то в системе прописывается, путь к папке для временных файлов), тогда, может, заставить ПО проверять наличие папки Windows, чтобы определить, не удалил ли кто-нибудь Windows, пока они работают?

Автор: mr.DUDA 14.3.2005, 19:25
Модератор: Вообще-то, тема не имеет отношения к программированию на С++.

Автор: DENNN 14.3.2005, 22:00
Ну почему же не имеет. Ведь приходится иногда пользоваться из C++ функциями
Код

UINT GetTempFileName(
  LPCTSTR lpPathName,
  LPCTSTR lpPrefixString,
  UINT uUnique,
  LPTSTR lpTempFileName
);

DWORD GetTempPath(
  DWORD nBufferLength,
  LPTSTR lpBuffer
);

?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)