На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
  
> Bitdefender Internet Security блокирует сообщения PostMessage в моём приложении
    Подскажите, пожалуйста, такая проблема:
    Если в антивирусе Bitdefender Internet Security включена защита Advanced Threat Defense, то в моей программе доходят не все сообщения, посланные PostMessage(g_mainWinHWnd, WM_USER + 15, p1, p2).

    И самое интересное — если запускаю приложение в Release mode из Visual Studio (по Ctrl + F5), то всё идеально работает. Но если запускаю в проводнике тот же откомпилированный .exe, то появляется эта проблема. Писал в службу поддержки Bitdefender — не знают решения.
      Самостоятельно удалось найти причину! Оказалось, что в параметре p1 передавал структуру, которая удалялась раньше, чем было получено сообщение. Спасибо Bitdefender, что выводил этот баг на чистую воду!
      Вопрос решён!
        По идее, в программе должен произойти сбой при обращении к удаленному объекту.

        У меня в таких случаях сделано так: потоку нужно вывести строку с информацией и т.п. создаю нужный объект, заполняю его информацией и отправляю ссылку. Принимающий берет инфу и удаляет объект.
        Или если обмен идет ссылками (между потоками), то эти объекты у меня удаляются при закрытии программы, после остановки всех потоков и т.д.
        Или, если поток создает объект, то в методе, который возвращает на него ссылку, идет обнуление локальной переменной с этой ссылкой, и в диструкторе проверяется, забрали ли объект или нет.
        Вообщем много ухищрений.
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0178 ]   [ 17 queries used ]   [ Generated: 26.04.24, 08:23 GMT ]