crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

4 страниц V  < 1 2 3 4 >  
Ответить в данную темуНачать новую тему
> MFC vs Qt
Алексей1153
  опции профиля:
сообщение 31.1.2011, 21:01
Сообщение #21


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Rocky, я понял - это map без mapped_value

А по моему, это ты допускаешь такие ошибки, а не компилятор :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 31.1.2011, 21:02
Сообщение #22


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(Алексей1153 @ 31.1.2011, 20:36) *
Но вот любопытно, как связано написание драйверов и глюки MFC ?:)

каша в голове у разработчиков и нет никакой ответственности перед пользователями. индусский код, одним словом.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 31.1.2011, 21:05
Сообщение #23


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Цитата(Rocky @ 31.1.2011, 23:00) *
CAboutDlg aboutDlg;
CWnd *pWnd = aboutDlg.GetDlgItem(IDC_BUTTON1); //вот тут ошибка (пока не понятно почему)

всё понятно - ты не создал диалог

поясню, ты только выделил память под HWND , и присвоил ему 0

А создавать объект окна не стал

Цитата(Iron Bug @ 31.1.2011, 23:02) *
каша в голове у разработчиков и нет никакой ответственности перед пользователями. индусский код, одним словом

любимая песня линуксоидов, причём обычно бездоказательная, а просто "патамушта" :)



Сообщение отредактировал Алексей1153 - 31.1.2011, 21:06
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 31.1.2011, 21:06
Сообщение #24


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


Цитата(Алексей1153)
Цитата(Rocky @ 31.1.2011, 23:00)
CAboutDlg aboutDlg;
CWnd *pWnd = aboutDlg.GetDlgItem(IDC_BUTTON1); //вот тут ошибка (пока не понятно почему)
всё понятно - ты не создал диалог

Как это не создал? Я так понимаю DoModal его создает? Или нет? А как его создать до того, как сделать его модальным и вывести?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 31.1.2011, 21:11
Сообщение #25


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Rocky, DoModal - да , создаёт объект окна диалога и делает его модальным. А Create создаёт и не делает модальным

Цитата(Rocky @ 31.1.2011, 23:06) *
А как его создать до того, как сделать его модальным и вывести?

это не сделаешь никак, но это и не требуется

диалог и контролы - это лишь прослойка между данными в классе диалога (а зачастую и в создателе диалога) и пользователем. В контролах данные не хранят, они там временно
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 31.1.2011, 21:15
Сообщение #26


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


ну а если говорить про STL, то у мелкософта с со студии 2005 и до сих пор(!) есть глюк: у vector, deque (возможно, ещё с какими-то объектами, подобными этим) есть страшная бага: при работе в разных потоках с началом и хвостом они портят собственные внутренние указатели и затирают содержимое. обойти это разруливанием мьютексами невозможно (я про это писала тут: http://www.forum.crossplatform.ru/index.ph...st&p=40815). причём мелкософт знает о баге и обещает (может быть) поправить её в студии 2011. а пока - увы! просто нельзя юзать STL шаблоны в полном объёме.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 31.1.2011, 21:18
Сообщение #27


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Iron Bug, с вектором активно работаю в нескольких потоках, ничего не рушится. Может, ты просто какой-то фокус над ними совершаешь ? А с декью я не работал ни разу, но я ту тему помню
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 31.1.2011, 21:19
Сообщение #28


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


Цитата(Алексей1153)
Rocky, я понял - это map без mapped_value

Что-то вроде того. Да.

Цитата(Алексей1153)
А по моему, это ты допускаешь такие ошибки, а не компилятор

Эм... ну как бы готов поспорить. Это называется нестрогое соответствие стандарту. Я понимаю что сам дурак. Но можно ведь поставить защиту от его самого? Сейчас да, я более внимательно изучаю документацию и более тщательно подхожу к разработке... Но когда такие вещи делал, еще учился можно сказать. И никак не ожидал такого.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 31.1.2011, 21:29
Сообщение #29


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Iron Bug, к твоей нежной любови к мелкософту можно подойти со следующей стороны: много людей пользуются виндой и не стремятся бежать под клёвый-растакой линукс, почему-то. Затем. Они пользуются софтом - приложения, драйвера. Им это надо. А раз им это надо, на них можно зарабатывать деньги - писать им этот софт. И можно ругаться сколько хочешь, но пока они платят за софт, мы всё равно будем писать под этот кривой-растакой_мать_его_за_ногу виндовс :)



Цитата(Rocky @ 31.1.2011, 23:19) *
Но когда такие вещи делал, еще учился можно сказать.

все учатся...

а вот как компилятор защитит тебя от следующего:

std::map<int,int> m;
m[1]=10;
m[2]=20;
m[3]=30;
std::map<int,int>::iterator it2=m.find(2);
m.erase(1);

int i=it2->second; //тук! скорее всего упали
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 31.1.2011, 21:47
Сообщение #30


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(Алексей1153 @ 31.1.2011, 23:29) *
пока они платят за софт, мы всё равно будем писать под этот кривой-растакой_мать_его_за_ногу виндовс

дело ваше. я лично не люблю извращения. даже за деньги :)
и, насколько я вижу, всё идёт к тому, что венда похоронит сама себя. они в тупике. а другие компании постоянно развиваются. за последние годы линюкс завоевал абсолютное большинство применений в серверных и встроенных системах и уже уверенно осваивает юзерские десктопы. в общем, будущее покажет :)

Цитата(Алексей1153 @ 31.1.2011, 23:18) *
с вектором активно работаю в нескольких потоках, ничего не рушится. Может, ты просто какой-то фокус над ними совершаешь ?

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

Сообщение отредактировал Iron Bug - 31.1.2011, 21:49
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

4 страниц V  < 1 2 3 4 >
Ответить в данную темуНачать новую тему
Теги
Нет тегов для показа


4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 15.1.2025, 12:38