Потоки... Почему Acces Violation?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
GoldaBit
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 23.10.2007 (Вт) 15:20

Потоки... Почему Acces Violation?

Сообщение GoldaBit » 23.10.2007 (Вт) 15:51

Столкнулся с проблемой: попытался запустить дочерний поток из программы, вроде всё сделал в соответствии с образцами на Си...
Программа компилируется, вроде даже поток создаётся, иногда рабочая функция потока исполняется один раз (Там цикл из 5 сообщений) и бам, Acces Violation!
Без потока всё работает!
Решил, что можно попробовать ActivexEXE с числом потоков *один поток на объект* но на этот раз из такого дочернего потока не хочет работать SetDIBitsToDevice() - но из главного цикла работает - причём проверял и AutoRefresh и функция после выполнения высоту рисунка корректно возвращает.
Вот не могу понять, что же делать?

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 23.10.2007 (Вт) 17:47

SetDIBitsToDevice должна быть вызвана из того же потока, в котором контекст. А вылетает, потому что не проинициализирован рантайм для нового потока.
Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, SemrushBot, Yandex-бот и гости: 77

    TopList