| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > UpdateData и поток |
| Автор: BIV 21.6.2012, 11:43 | ||
| Всем доброе время суток! Возникла такая сложность: Есть диалоговое окно и в ней текстовое поле IDC_EDIT1, которое названа переменной edit типом int. Есть поток, который пытается занести данные в edit и команды UpdateData
Компиляция прошла успешно, но появляется окно с ошибкой Run-Time Check Failure #3 - The variable 'qwe' is being used without being initialized. Что я тут сделал не так? Как мне обновить данные? |
| Автор: xTr1m 21.6.2012, 12:39 | ||||||||||
Тут, ты просто объявляешь указатель (он указывает "вникуда")
а тут ты сразу его используешь
как я понимаю между этими строками забыл
p.s. кстати, цикл
бесконечный, поэтому код ниже этих строк никогда не выполнится. По-моему, задумывалось как-то так:
|
| Автор: BIV 21.6.2012, 12:46 | ||||
Поправил
Но при компиляции Debug, то по прежнему ошибка, если компилить через Release, то нормально, прога запускается и выполняется цикл, но при выходе окно с надписей: Unhandled exception at 0x7863e574 in potoki.exe: 0xC0000005: Access violation reading location 0x0000c266. И после него второе: No symbols are loaded for any call stack frame. The source code cannot be displayed. Если запустить скомпилированную программу в папке, то вроде работает и ничего не вылетает. Это нормально? Добавлено через 8 минут и 40 секунд Вот так при компиляции Release, при завершении ничего не выскакивает, а при Debug по прежнему не доволен
|
| Автор: xTr1m 21.6.2012, 13:03 | ||||
Вообще проблема в том, что окна между потоками должны передаваться по HWND (ну так во всяком случае рекомендуется). Но вот такой код почему-то не работает. Может кто из более опытных знает. Мне тоже стало интересно, поэтому покопаюсь.
Добавлено @ 13:07 Можно вот так
но это без механизма UpdateData |
| Автор: BIV 21.6.2012, 13:27 |
| qwe->GetDlgItem(IDC_EDIT1)->SetWindowText(str); Работает, но у меня при завершении появляется окошко с ошибкой. В моем случае не появлялась. Говорят что в Release лучше не компилить, якобы это не безопасно. Хотелось бы знать почему. В Debug по прежнему не могу |
| Автор: xTr1m 21.6.2012, 13:31 | ||
| странно. у меня такой пример завершается нормально. что пишет про ошибку? (хотя по-хорошему, нужно завершить поток) а нельзя оставлять такой релиз, так как потом может всплыть что угодно и когда угодно, этакая мина, которая рано или поздно взорвется. Так как в дебаге просто предупреждают, что мол, нехорошо так делать. ну вот так вот можно еще
|
| Автор: BIV 21.6.2012, 14:34 |
| Все, ошибки возникали из-за моей глупости, как раз забыл поток завершить. Думаю, проблема решена. Главное что работает)) xTr1m, спасибо!) |