Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.138.204.208] |
|
Сообщ.
#1
,
|
|
|
Подскажите, пожалуйста, такая проблема:
Если в антивирусе Bitdefender Internet Security включена защита Advanced Threat Defense, то в моей программе доходят не все сообщения, посланные PostMessage(g_mainWinHWnd, WM_USER + 15, p1, p2). И самое интересное — если запускаю приложение в Release mode из Visual Studio (по Ctrl + F5), то всё идеально работает. Но если запускаю в проводнике тот же откомпилированный .exe, то появляется эта проблема. Писал в службу поддержки Bitdefender — не знают решения. |
Сообщ.
#2
,
|
|
|
Самостоятельно удалось найти причину! Оказалось, что в параметре p1 передавал структуру, которая удалялась раньше, чем было получено сообщение. Спасибо Bitdefender, что выводил этот баг на чистую воду!
Вопрос решён! |
Сообщ.
#3
,
|
|
|
По идее, в программе должен произойти сбой при обращении к удаленному объекту.
У меня в таких случаях сделано так: потоку нужно вывести строку с информацией и т.п. создаю нужный объект, заполняю его информацией и отправляю ссылку. Принимающий берет инфу и удаляет объект. Или если обмен идет ссылками (между потоками), то эти объекты у меня удаляются при закрытии программы, после остановки всех потоков и т.д. Или, если поток создает объект, то в методе, который возвращает на него ссылку, идет обнуление локальной переменной с этой ссылкой, и в диструкторе проверяется, забрали ли объект или нет. Вообщем много ухищрений. |