<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=467361&amp;view=findpost&amp;p=3929802</guid>
        <pubDate>Thu, 09 Oct 2025 13:20:00 +0000</pubDate>
        <title>Отладчик выбрасывает исключение</title>
        <link>https://forum.sources.ru/index.php?showtopic=467361&amp;view=findpost&amp;p=3929802</link>
        <description><![CDATA[erslgoeirjh: Проблема решена. Просто перед выводом строк в m_IDC_LIST3 были математические вычисления, в который был выход за пределы массива. Я увеличил размерность массива и всё теперь нормально работает.]]></description>
        <author>erslgoeirjh</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=467361&amp;view=findpost&amp;p=3929736</guid>
        <pubDate>Wed, 08 Oct 2025 21:45:35 +0000</pubDate>
        <title>Отладчик выбрасывает исключение</title>
        <link>https://forum.sources.ru/index.php?showtopic=467361&amp;view=findpost&amp;p=3929736</link>
        <description><![CDATA[sharky72: Может глупый вопрос, а у вас правильно сделана привязка m_IDC_LIST3 к соответствующему RESOURCE_ID через DDX_Control??<br>Хотя может быть проблема в этом -&gt; Visual Studio 2012. На какой системе установлена?]]></description>
        <author>sharky72</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=467361&amp;view=findpost&amp;p=3929571</guid>
        <pubDate>Mon, 06 Oct 2025 16:16:07 +0000</pubDate>
        <title>Отладчик выбрасывает исключение</title>
        <link>https://forum.sources.ru/index.php?showtopic=467361&amp;view=findpost&amp;p=3929571</link>
        <description><![CDATA[Majestio: <strong class='tag-b'>macomics</strong>, если проще - <span class="tag-font" data-value="Courier" style="font-family:Courier"><span class="tag-color tag-color-named" data-value="blue" style="color: blue">GetSuperWndProcAddr()</span></span> возвращает адрес где хранится указатель на оконную процедуру суперкласса. По сути - указатель на указатель. Поэтому и нужно применять оператор разыменования *.]]></description>
        <author>Majestio</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=467361&amp;view=findpost&amp;p=3929559</guid>
        <pubDate>Mon, 06 Oct 2025 13:08:25 +0000</pubDate>
        <title>Отладчик выбрасывает исключение</title>
        <link>https://forum.sources.ru/index.php?showtopic=467361&amp;view=findpost&amp;p=3929559</link>
        <description><![CDATA[macomics: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=467361&view=findpost&p=3929542'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>ЫукпШ &#064; <time class="tag-quote__quoted-time" datetime="2025-10-06T10:22:16+00:00">06.10.25, 10:22</time></span><div class='quote '>Обязательно надо</div></div><br>
<s class='tag-s'>Учитывая, что == вычисляется как 0 или 1 строго, тогда =* просто обнуление в случае отсутствия значения (== NULL).</s><br>
Не знаю типа результата GetSuperWndProcAddr, но это похоже на обнуление результата в случае отсутствия значения. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2025-10-06T13:13:26+00:00">06.10.25, 13:13</time></span></span><br>
Чуть поискав<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">WNDPROC* CWnd::GetSuperWndProcAddr() { return &m_pfnSuper; }</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
<s class='tag-s'>Получается, что pfnWndProc обнуляется, если значение m_pfnSuper отсутствует.</s><br>
Сформулирую по другому.<br>
Разыменовывая значение из указателя/ссылки и записывая его в pfnWndProc проверяем на NULL. После используем один из двух способов дальнейшей обработки события.<br>
В данном случае * это эквивалент [], а не умножения.]]></description>
        <author>macomics</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=467361&amp;view=findpost&amp;p=3929557</guid>
        <pubDate>Mon, 06 Oct 2025 12:21:28 +0000</pubDate>
        <title>Отладчик выбрасывает исключение</title>
        <link>https://forum.sources.ru/index.php?showtopic=467361&amp;view=findpost&amp;p=3929557</link>
        <description><![CDATA[erslgoeirjh: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=467361&view=findpost&p=3929542'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>ЫукпШ &#064; <time class="tag-quote__quoted-time" datetime="2025-10-06T10:22:16+00:00">06.10.25, 10:22</time></span><div class='quote '></div></div><br>
<br>
Файл wincore.cpp -- файл разработчиков Visual Studio, а не мой.]]></description>
        <author>erslgoeirjh</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=467361&amp;view=findpost&amp;p=3929542</guid>
        <pubDate>Mon, 06 Oct 2025 10:22:16 +0000</pubDate>
        <title>Отладчик выбрасывает исключение</title>
        <link>https://forum.sources.ru/index.php?showtopic=467361&amp;view=findpost&amp;p=3929542</link>
        <description><![CDATA[ЫукпШ: <strong class='tag-b'>erslgoeirjh</strong>,<br>
<br>
А эта строка :<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">if ((pfnWndProc =* GetSuperWndProcAddr())==NULL)</div></ol></div></div></div></div><br>
Обязательно надо <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">=*</div></ol></div></div></div></div><br>
?]]></description>
        <author>ЫукпШ</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=467361&amp;view=findpost&amp;p=3929518</guid>
        <pubDate>Mon, 06 Oct 2025 07:58:55 +0000</pubDate>
        <title>Отладчик выбрасывает исключение</title>
        <link>https://forum.sources.ru/index.php?showtopic=467361&amp;view=findpost&amp;p=3929518</link>
        <description><![CDATA[macomics: Лучше прикрепите свой код, а не кусок стандартного инклюда. Проблема явно не в нем. Но суть ошибки такая: Вы передали в виде callback указателя что-то не то со значением 0x3CBEC861]]></description>
        <author>macomics</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=467361&amp;view=findpost&amp;p=3929510</guid>
        <pubDate>Mon, 06 Oct 2025 06:39:57 +0000</pubDate>
        <title>Отладчик выбрасывает исключение</title>
        <link>https://forum.sources.ru/index.php?showtopic=467361&amp;view=findpost&amp;p=3929510</link>
        <description><![CDATA[erslgoeirjh: Я пишу программу на C++ в среде разработки Visual Studio 2012.<br>
<br>
В моей программе на диалоговом окне размещены в одном месте две таблицы (CListCtrl) -- m_IDC_LIST1 и m_IDC_LIST3.<br>
В результате программных вычислений вставляются строки в таблицы m_IDC_LIST1 и m_IDC_LIST3.<br>
Переключение между таблицами на диалоговом окне между этими двумя таблицами осуществляется путём нажатия кнопок &quot;&gt;&gt;&quot; и &quot;&lt;&lt;&quot;.<br>
Код обработки нажатия этих кнопок следующий:<br>
<br>
1) кнопка &quot;&gt;&gt;&quot; :<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">m_IDC_LIST1.ShowWindow(SW_HIDE);</div><div class="code_line">m_IDC_LIST3.ShowWindow(SW_SHOW);</div></ol></div></div></div></div><br>
<br>
2) кнопка &quot;&lt;&lt;&quot; :<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">m_IDC_LIST3.ShowWindow(SW_HIDE);</div><div class="code_line">m_IDC_LIST1.ShowWindow(SW_SHOW);</div></ol></div></div></div></div><br>
<br>
Первоначально отображается таблица m_IDC_LIST1 (SW_SHOW), а таблица m_IDC_LIST3 не отображается (SW_HIDE).<br>
После нажатия на кнопку &quot;Расчёт&quot; данные таблице m_IDC_LIST1 правильно отображаются, а при нажатии после этого на кнопку &quot;&gt;&gt;&quot; для отображения таблицы m_IDC_LIST3 в отладчике выскакивает исключение:<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Необработанное исключение по адресу 0x3CBEC861 в BNOISZ.exe: 0xC000041D:<br>
Во время обратного вызова пользователя обнаружено необработанное исключение.</div></div><br>
<br>
При этом отображается файл wincore.cpp и функция в нём CWnd::DefWIndowProc :<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">LRESULT &nbsp;CWnd::DefWindowProc(UINT nMsg, WPARAM wParam, LPARAM lParam)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (m_pfnSuper!=NULL)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return ::CallWindowProc(m_pfnSuper, m_hWnd, nMsg, wParam, lParam);</div><div class="code_line">&nbsp;&nbsp; &nbsp;WNDPROC &nbsp;pfnWndProc;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if ((pfnWndProc =* GetSuperWndProcAddr())==NULL)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return &nbsp;::DefWindowProc(m_hWnd, nMsg, wParam, lParam);</div><div class="code_line">&nbsp;&nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return &nbsp;::CallWindowProc(pfnWndProc, m_hWnd, nMsg, wParam, lParam);</div><div class="code_line">}</div></ol></div></div></div></div><br>
<br>
При этом курсор в файле wincore.cpp останавливается на строке<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">return &nbsp;::CallWindowProc(m_pfnSuper, m_hWnd, nMSg, wParam, lParam);</div></ol></div></div></div></div><br>
<br>
В чём причина этого? Как исправить эту ошибку?]]></description>
        <author>erslgoeirjh</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      </channel>
      </rss>
	