Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » создание BRUSH в С++ WinAPI

Ответить
Настройки темы
создание BRUSH в С++ WinAPI

Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: Vlad Drakula
Дата: 12-06-2006
обнаружил следующую проблему:

если в цикле присваивать переменной цикла значение которое получено с помощью макроса "color" то в приложении обязательно случается глюк... и причем именно из за этого...

из-за чего такое происходит???

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 18:48, 11-06-2006

 

Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


dmitryst
Цитата:
Серьёзно?
да!
Цитата:
А я это еще в какой-то древней книжке по С читал, но почему-то помню, что в С++ кисти удаляются при создании новой кисти автоматически. И что, помогло? Работает?
теоретически наверное быть этого не может... т.к. скорее всего там выделяется память, а удалить ее можно только если получить значение этой переменной, а в функцию она не передается, значит и очистить память не возможно!

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 16:43, 13-06-2006 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для dmitryst

Ветеран


Сообщения: 7262
Благодарности: 906

Профиль | Отправить PM | Цитировать


Vlad Drakula Не зря в PERL придумали "сборку мусора" , убирать за ленивыми программистами . В итоге, у вас заработало как надо?

-------
Осваиваю FreeBSD


Отправлено: 17:13, 13-06-2006 | #12


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


dmitryst
Цитата:
В итоге, у вас заработало как надо?
да, я просто теперь из все инициализирую пи загрузке приложения...

Цитата:
Не зря в PERL придумали "сборку мусора" , убирать за ленивыми программистами .
по моему это ввели замного до появления этого языка... и не только в нем... ктомуже есть компромис между скоростью и требования к уровню програмиста...

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 17:46, 13-06-2006 | #13


Аватара для dmitryst

Ветеран


Сообщения: 7262
Благодарности: 906

Профиль | Отправить PM | Цитировать


Vlad Drakula Про "мусор" - это к удобству работы. Но, конечно, правильнее - выделить память под ресурс, создать ресурс, удалить ресурс и освободить память. Ручками. Ну да ладно, главное - заработало, с чем и поздравляю.

-------
Осваиваю FreeBSD


Отправлено: 18:09, 13-06-2006 | #14

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Тов. программеры, не путайте библиотеки высокого уровня с WinAPI. Первые всё за собой чистят, и делают правильно, вторые - быстро. Лично я сторонник чистки мусора в деструкторе (I LOVE C++). Кисти автоматически удаляются в VCL но не WinAPI. Пример:
Код: Выделить весь код
// всегда будет работать правильно
class TBrush
{
  HBRUSH fhandle;
  TBrush(const TBrush&);
public:
  TBrush(int color=0) : fhandle(CreateSolidBrush(color))
  {
  }

  ~TBrush()
  {
    DeleteObject(fhandle);
  }

  void operator=(int color)
  {
     DeleteObject(fhandle);
     fhandle = CreateSolidBrush(color);
  }
}

Отправлено: 19:10, 15-06-2006 | #15



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » создание BRUSH в С++ WinAPI

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Win32 API - Создание "сквозной" формы средствами WinAPI garkin123 Программирование и базы данных 7 14-11-2009 23:41
Delphi - Delphi | создание окна и его элементов средствами WinAPI Savant Программирование и базы данных 14 18-01-2005 14:15
Smile Brush v.1.0 или GetSmile v.1.100 Djamper Программное обеспечение Windows 11 27-03-2004 19:12
WinAPI Guest Программирование и базы данных 1 19-03-2004 03:14
WinApi fLANkeR Программирование и базы данных 3 25-01-2003 08:15




 
Переход