<?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=353658&amp;view=findpost&amp;p=3101330</guid>
        <pubDate>Thu, 22 Mar 2012 22:47:59 +0000</pubDate>
        <title>CreateWindow и ERROR_PROC_NOT_FOUND</title>
        <link>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3101330</link>
        <description><![CDATA[Skino: Вы не понимаете, вот упр. часть кода:<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">// рисуем MainWindow</div><div class="code_line">hSettingWnd = CreateWindowEx(...);</div><div class="code_line">// далее рисуем кнопки</div><div class="code_line">CreateWindowEx(...);</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
Если пройтись отладчиком то видно что первая функция CreateWindowEx возвратила SUCCESS_ERROR, идущая СЛЕДОМ за ней уже ERROR_PROC_NOT_FOUND, отсюда следут что адрес функции существует и находится в должном месте.<br>
<br>
В новом потоке DLL перед кодом я поставил Sleep(5000) т.е. код исполняется после всех виданных и невиданных инициализаций.<br>
<br>
П.С.<br>
<strong class='tag-b'>Dem_max</strong>, пожалуйста относитесь с уважением к участникам форума. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2012-03-23T03:06:50+04:00">22.03.12, 23:06</time></span></span><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">typedef HWND (__stdcall *pCreateWindowEx)(DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle,</div><div class="code_line">&nbsp;&nbsp; &nbsp;int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam);</div><div class="code_line">pCreateWindowEx MyCreateWindowEx;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;HMODULE hmUser32 = GetModuleHandle(&quot;User32.dll&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;MyCreateWindowEx = (pCreateWindowEx)GetProcAddress(hmUser32, &quot;CreateWindowExA&quot;);</div></ol></div></div></div></div><br>
Функции выполнились успешно, нашлась DLL, нашелся адрес, но попытка создать кнопку через новую функцию к сожалению не увенчался успехом.]]></description>
        <author>Skino</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100642</guid>
        <pubDate>Thu, 22 Mar 2012 00:14:36 +0000</pubDate>
        <title>CreateWindow и ERROR_PROC_NOT_FOUND</title>
        <link>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100642</link>
        <description><![CDATA[Skino: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=353658&view=findpost&p=3100569'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2012-03-21T20:08:15+00:00">21.03.12, 20:08</time></span><div class='quote '>отказаться</div></div><br>
К сожалению нет такой возможности. Я больше чем уверен что вопрос решится максимум затрагивая 50 символов.<br>
Просто я не знаю что и где косячит.]]></description>
        <author>Skino</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100569</guid>
        <pubDate>Wed, 21 Mar 2012 20:08:15 +0000</pubDate>
        <title>CreateWindow и ERROR_PROC_NOT_FOUND</title>
        <link>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100569</link>
        <description><![CDATA[Qraizer: Даже так... Я считал, что приведённых цитат более чем достаточно, чтобы отказаться от затеи играть с огнём. Особенно, учитывая что ты прав: копать можно долго и упорно, выискивая всё новые и новые подводные камни и без конца примеряя их к своему коду.<br>Впрочем, хозяин - барин. Удачной отладки.]]></description>
        <author>Qraizer</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100482</guid>
        <pubDate>Wed, 21 Mar 2012 16:56:35 +0000</pubDate>
        <title>CreateWindow и ERROR_PROC_NOT_FOUND</title>
        <link>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100482</link>
        <description><![CDATA[Skino: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=353658&view=findpost&p=3100477'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2012-03-21T16:44:07+00:00">21.03.12, 16:44</time></span><div class='quote '>Это то, что нарылось за три минуты. Дальше копать сам справишься?<br>
</div></div><br>
В цитатах не увидел ничего что бы помогло мне &quot;копать&quot; в нужно направлении.]]></description>
        <author>Skino</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100477</guid>
        <pubDate>Wed, 21 Mar 2012 16:44:07 +0000</pubDate>
        <title>CreateWindow и ERROR_PROC_NOT_FOUND</title>
        <link>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100477</link>
        <description><![CDATA[Qraizer: О боже...<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Because Kernel32.dll is guaranteed to be loaded in the process address space when the entry-point function is called, calling functions in Kernel32.dll does not result in the DLL being used before its initialization code has been executed. Therefore, the entry-point function can call functions in Kernel32.dll that do not load other DLLs. For example, DllMain can create synchronization objects such as critical sections and mutexes, and use TLS. Unfortunately, there is not a comprehensive list of safe functions in Kernel32.dll.<br>
<br>
Windows 2000:  Do not create a named synchronization object in DllMain because the system will then load an additional DLL. This restriction does not apply to subsequent versions of Windows.<br>
<br>
Calling functions that require DLLs other than Kernel32.dll may result in problems that are difficult to diagnose. For example, calling User, Shell, and COM functions can cause access violation errors, because some functions load other system components.</div></div><br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>During process startup and DLL initialization routines, new threads can be created, but they do not begin execution until DLL initialization is done for the process. </div></div>Это то, что нарылось за три минуты. Дальше копать сам справишься?]]></description>
        <author>Qraizer</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100467</guid>
        <pubDate>Wed, 21 Mar 2012 16:16:27 +0000</pubDate>
        <title>CreateWindow и ERROR_PROC_NOT_FOUND</title>
        <link>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100467</link>
        <description><![CDATA[Skino: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=353658&view=findpost&p=3100463'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>B.V. &#064; <time class="tag-quote__quoted-time" datetime="2012-03-21T16:14:40+00:00">21.03.12, 16:14</time></span><div class='quote '>перенеси код из DllMain в отдельную экспортируемую функцию</div></div><br>
А смысл если её вызов будет все равно из самой DLL. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2012-03-21T16:32:19+00:00">21.03.12, 16:32</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=353658&view=findpost&p=3100467'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Skino &#064; <time class="tag-quote__quoted-time" datetime="2012-03-21T16:16:27+00:00">21.03.12, 16:16</time></span><div class='quote '>перенеси код из DllMain в отдельную экспортируемую функцию</div></div><br>
И вообще у меня в DllMain создается новый поток, а потом в нем уже все пляски.]]></description>
        <author>Skino</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100463</guid>
        <pubDate>Wed, 21 Mar 2012 16:14:40 +0000</pubDate>
        <title>CreateWindow и ERROR_PROC_NOT_FOUND</title>
        <link>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100463</link>
        <description><![CDATA[B.V.: Для начала, перенеси код из DllMain в отдельную экспортируемую функцию, и приведи её здесь, если ошибка не исчезнет]]></description>
        <author>B.V.</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100456</guid>
        <pubDate>Wed, 21 Mar 2012 16:04:09 +0000</pubDate>
        <title>CreateWindow и ERROR_PROC_NOT_FOUND</title>
        <link>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100456</link>
        <description><![CDATA[Skino: Так же хочу подметить что окно, и кнопка окна создаются через одну и ту же функцию (CreateWindowExA), только вот рузультат создания главного окна = ERROR_SUCCESS а кнопки ERROR_PROC_NOT_FOUND. Причём идут они все следом.]]></description>
        <author>Skino</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100443</guid>
        <pubDate>Wed, 21 Mar 2012 15:36:50 +0000</pubDate>
        <title>CreateWindow и ERROR_PROC_NOT_FOUND</title>
        <link>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100443</link>
        <description><![CDATA[B.V.: Разница между двумя методами запуска в текущей директории для запускаемого процесса. Следовательно, ошибка может быть связана с загрузкой другой копии какой-то dll, не имеющей необходимой экспортируемой функции. Но это не оправдывает наличие подобного кода в DllMain, и называть код корректным, только потому что он работает при определенных условиях, когда в документации явным образом не рекомендуется вызывать в DllMain что-либо, кроме функций kernel (и то, не всех) -- как минимум, некорректно]]></description>
        <author>B.V.</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100440</guid>
        <pubDate>Wed, 21 Mar 2012 15:35:13 +0000</pubDate>
        <title>CreateWindow и ERROR_PROC_NOT_FOUND</title>
        <link>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100440</link>
        <description><![CDATA[Qraizer: Никакое количество положительных тестов не может доказать правильность теории. С ростом их количества всего лишь уменьшается вероятность её неправильности. Но достаточно всего только одного испытания, провалившегося у заказчика, чтобы теория оказалась несостоятельной, и неустойку платить придётся, никуда не денешься.]]></description>
        <author>Qraizer</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100411</guid>
        <pubDate>Wed, 21 Mar 2012 14:56:09 +0000</pubDate>
        <title>CreateWindow и ERROR_PROC_NOT_FOUND</title>
        <link>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100411</link>
        <description><![CDATA[Skino: <strong class='tag-b'>B.V.</strong>Весь код безопасен и рабочий (проверено). НО проблемы только когда запускаешь прогу из под проги...]]></description>
        <author>Skino</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100405</guid>
        <pubDate>Wed, 21 Mar 2012 14:42:22 +0000</pubDate>
        <title>CreateWindow и ERROR_PROC_NOT_FOUND</title>
        <link>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100405</link>
        <description><![CDATA[B.V.: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=353658&view=findpost&p=3100251'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Skino &#064; <time class="tag-quote__quoted-time" datetime="2012-03-21T10:47:07+00:00">21.03.12, 10:47</time></span><div class='quote '>В DLL нету экспорт. функций. </div></div><br>
Т.е. ты производишь все эти действия в DllMain, где не рекомендуется делать ничего, кроме элементарной инициализации?<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>MSDN</span><div class='quote '>Warning  There are serious limits on what you can do in a DLL entry point. To provide more complex initialization, create an initialization routine for the DLL. You can require applications to call the initialization routine before calling any other routines in the DLL.<br>
...<br>
Calling functions that require DLLs other than Kernel32.dll may result in problems that are difficult to diagnose. For example, calling User, Shell, and COM functions can cause access violation errors, because some functions load other system components. Conversely, calling functions such as these during termination can cause access violation errors because the corresponding component may already have been unloaded or uninitialized.</div></div>]]></description>
        <author>B.V.</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100387</guid>
        <pubDate>Wed, 21 Mar 2012 14:04:40 +0000</pubDate>
        <title>CreateWindow и ERROR_PROC_NOT_FOUND</title>
        <link>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100387</link>
        <description><![CDATA[ElcnU: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=353658&view=findpost&p=3100199'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Skino &#064; <time class="tag-quote__quoted-time" datetime="2012-03-21T09:56:47+00:00">21.03.12, 09:56</time></span><div class='quote '>Но если запустить программу через что либо (например через CreateProcess) </div></div><br>
lpCurrentDirectory что указываешь?<br>
укажи директорию программы, которую запускаешь]]></description>
        <author>ElcnU</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100251</guid>
        <pubDate>Wed, 21 Mar 2012 10:47:07 +0000</pubDate>
        <title>CreateWindow и ERROR_PROC_NOT_FOUND</title>
        <link>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100251</link>
        <description><![CDATA[Skino: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=353658&view=findpost&p=3100244'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>B.V. &#064; <time class="tag-quote__quoted-time" datetime="2012-03-21T10:39:39+00:00">21.03.12, 10:39</time></span><div class='quote '>И раньше она загружалась нормально?</div></div><br>
Изначально и всегда была такая проблема.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=353658&view=findpost&p=3100244'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>B.V. &#064; <time class="tag-quote__quoted-time" datetime="2012-03-21T10:39:39+00:00">21.03.12, 10:39</time></span><div class='quote '>Судя по ошибке, вызывающая программа не может найти одну из экспортируемых функций твоей DLL. </div></div><br>
В DLL нету экспорт. функций. Функция создания кнопки чисто из windows.h]]></description>
        <author>Skino</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100244</guid>
        <pubDate>Wed, 21 Mar 2012 10:39:39 +0000</pubDate>
        <title>CreateWindow и ERROR_PROC_NOT_FOUND</title>
        <link>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100244</link>
        <description><![CDATA[B.V.: И раньше она загружалась нормально?<br>Судя по ошибке, вызывающая программа не может найти одну из экспортируемых функций твоей DLL.]]></description>
        <author>B.V.</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100237</guid>
        <pubDate>Wed, 21 Mar 2012 10:29:41 +0000</pubDate>
        <title>CreateWindow и ERROR_PROC_NOT_FOUND</title>
        <link>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100237</link>
        <description><![CDATA[Skino: DLL моя.]]></description>
        <author>Skino</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100212</guid>
        <pubDate>Wed, 21 Mar 2012 10:02:53 +0000</pubDate>
        <title>CreateWindow и ERROR_PROC_NOT_FOUND</title>
        <link>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100212</link>
        <description><![CDATA[B.V.: Надо понимать, что программа и DLL не твои?]]></description>
        <author>B.V.</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100199</guid>
        <pubDate>Wed, 21 Mar 2012 09:56:47 +0000</pubDate>
        <title>CreateWindow и ERROR_PROC_NOT_FOUND</title>
        <link>https://forum.sources.ru/index.php?showtopic=353658&amp;view=findpost&amp;p=3100199</link>
        <description><![CDATA[Skino: Есть программа, в ней есть DLL в котором рисуется окошко и в нем кнопки.<br>
Так вот, если просто запустить программу то DLL создает окно и рисует кнопки. Но если запустить программу через что либо (например через CreateProcess) то DLL рисует окно НО кнопки не рисует. Глянул под отладчиком - вот такая ошибка:  ERROR_PROC_NOT_FOUND<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">CreateWindow(&quot;button&quot;, &quot; &quot;, WS_CHILD | WS_VISIBLE | BS_CHECKBOX, 20, 20+25*2, WindowW-20, 20, hSettingWnd, (HMENU)ID_B1, NULL, NULL);</div></ol></div></div></div></div><br>
Скрин :<br>
<img class='tag-img' src='http://rghost.ru/37138850/image.png' alt='user posted image'><br>
Заранее благодарен за любую помощь.]]></description>
        <author>Skino</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      </channel>
      </rss>
	