Dmitry
сделал Tserial_event::~Tserial_event() { int i; if (thread_handle!=0) WaitForSingleObject(thread_handle, 2000); thread_handle = 0; _endthreadex(0); теперь вылетает Exception thrown at 0x0251708A (MSGFMT.DLL) in PDS.EXE: 0xC0000005: Access violation reading location 0x82530008. судя по трейсу, внутренняя либа для гуя даже если не стартовать ту нить
🦥Alex Fails
thread_handle - это член данных Tserial_event?
Dmitry
class Tserial_event protected: HANDLE thread_handle; // ...
Dmitry
даже если сделать if (thread_handle!=0) WaitForSingleObject(thread_handle, 2000); thread_handle = 0; //_endthreadex(0); TerminateThread(thread_handle, 0); CloseHandle(thread_handle); тот же виолейшн
🦥Alex Fails
так..
🦥Alex Fails
ща
🦥Alex Fails
момент
🦥Alex Fails
вообще лучше так не закрывать thread
🦥Alex Fails
если без закрытия хендла, то что происходит (прости, я чутка торможу)
Dmitry
у меня либа подгрузилась и не хочет освобождаться. поэтому последнее сообщение может быть неверным (студия не скопировала в каталог)
🦥Alex Fails
а FreeLibrary(hLib) не пашет?
Square
https://ru.stackoverflow.com/questions/529838/%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-ifilter-%D0%B8%D0%B7-istream/531822#531822 е
Square
вот описание моего кейса если чо
Dmitry
так у меня нет доступа к коду программы. я либу пишу. (там программа в процессах висела и не отдавала) а чуть выше в коде ошибка — thread_handle = 0; CloseHandle(thread_handle); а вот так можно делать? MyDsimModel *self; VOID MyDsimModel_SerialEventManager_wrapper(uint32 object, uint32 event) { self->SerialEventManager(object, event); } MyDsimModel::MyDsimModel() { self = this; com = new Tserial_event(); com->setManager(MyDsimModel_SerialEventManager_wrapper); com_error = com->connect("\\\\.\\COM50", 57600, SERIAL_PARITY_NONE, 8, true); } VOID MyDsimModel::SerialEventManager(uint32 object, uint32 event) { } в рантайме ругается на Exception thrown at 0x549E1099 (ProteusBridge.dll) in PDS.EXE: 0xC0000005: Access violation reading location 0x00000000. в строке self->SerialEventManager(object, event);
🦥Alex Fails
нулевой указатель..
🦥Alex Fails
откуда он берется
Dmitry
Dmitry
ставлю бряк. он на нём останавливается. делаю два (не понятно почему два) шага дебагера — вываливается исключение на первом шаге он никуда не уходит со строки
🦥Alex Fails
скорее всего, там какой-то геттер срабатывает
🦥Alex Fails
или оператор ->
🦥Alex Fails
попробуй F11 пройтись
🦥Alex Fails
+ дизасм код
Dmitry
и эта штука в разных частях кода вылезает. чуть раньше было тоже самое на com->connect("\\\\.\\COM50", 57600, SERIAL_PARITY_NONE, 8, true); шаг внутрь и память ломается. вытащил в конструктор — как бы прошло, но вылезло в другом месте. походу я что-то где-то неправильно более глобально делаю а в дизасм я не умею =(
🦥Alex Fails
надо попробовать data breakpoints
🦥Alex Fails
которые срабатывают, если данные в ячейке памяти меняются
Dmitry
по F11 не могу выйти — эхепшн. но перешёл по стеку выше. там вызов if (manager!=0) manager((uint32) this, SERIAL_CONNECTED); и в this лежит нормальный адрес (который и пришёл на картинке слева)
Square
попробуй профайлер какой нить
Square
интеловский анализатор поставь. он крутые отчеты строит
🦥Alex Fails
_CrtSetDbgFlags
🦥Alex Fails
И включить проверку на выделения/освобождения памяти
Dmitry
какая-то фигня. чеки ещё не включил. вылетало на setmanager'e вернул в деструктор TerminateThread(thread_handle, 0); CloseHandle(thread_handle); вылетать перестало. но иногда вылезает окно с виолейшном. раньше когда кликал там ОК — всё закрывалось. теперь же, походу, TerminateThread его само закрывает и всё работает дальше. правишь в одном месте — ошибки меняются в другом
🦥Alex Fails
я всегда включаю в debug-сборке проектов на максимально параноидальных настройках (обнаружить утечки, повреждения и пр.)
Dim
всем ку
Dim
нужен прогер есть список задач на различные темы. нужно решить хотя бы несколько. подробнее тут https://www.dropbox.com/sh/v5pm7b6n06de8fm/AACnXG-FGtmA-xz13nSQsq2Va/8c93cfeb930d1c94/Список задач на экзамен.pdf?dl=0 готов заплатить адекватную цену, т.к. это единственный вариант не поиметь проблем с универом заказчик: @jonsiros
Dim
телеграм ссылку обрубил https://www.dropbox.com/sh/v5pm7b6n06de8fm/AACnXG-FGtmA-xz13nSQsq2Va/8c93cfeb930d1c94/
Dim
хм..
Dim
https://www.dropbox.com/sh/v5pm7b6n06de8fm/AACnXG-FGtmA-xz13nSQsq2Va/8c93cfeb930d1c94/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA%20%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%20%D0%BD%D0%B0%20%D1%8D%D0%BA%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD.pdf?dl=0
Sergey
Я б сделал, если б диплом не висел
Dim
А сроки какие?
заказчик: @jonsiros
Алдар
Пусть сам делает)
Алдар
там ещё в предметной области надо разбираться
Ned
Ну нах такое кодить, он нас чё, за умных принял?
🦥Alex Fails
😂
Ned
Он мне за поумнение состояние заплатит.
Ned
Дорого нынче такое кодить
🦥Alex Fails
👍
Anonymous
А можно поподробнее?
Anonymous
Есть в открытом доступе?
Anonymous
У меня самого хуже
🦥Alex Fails
Да
🦥Alex Fails
Sprintf
🦥Alex Fails
Но лучше snprintf
🦥Alex Fails
Моя любимая функция)
Ned
Как это нахрен понимать?
Nikolay
ух ты
Nikolay
шестёрку выпускают
🦥Alex Fails
дык уже давно 6-ка есть
$continue$
Может 5.4 stable version
$continue$
А, 6.1 beta, как то так
🦥Alex Fails
Stanislav
Stanislav
какая бета
$continue$
Всего лишь предположения 😊
$continue$
Тогда GNU считать не умеет (мистика какая то)
$continue$
Видимо идею у окон позаимствовали
Stanislav
Тогда GNU считать не умеет (мистика какая то)
новая схема https://gcc.gnu.org/develop.html#num_scheme
arisudesu
сначала подумал, что вы про андроид
arisudesu
5.4
Roman
Книжка Праты по сям нормальная для новичка?
🦥Alex Fails
Да
🦥Alex Fails
Если есть, скинь сюда, для всех желающих
Roman
Roman
Хотел на озоне заказать, но от таких цен думаю и в электронке прочитаю :)