<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; Получить базовый адрес модуля [SAMP]]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=12078</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=12078&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Получить базовый адрес модуля [SAMP]».]]></description>
		<lastBuildDate>Wed, 19 Oct 2016 02:41:47 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Получить базовый адрес модуля [SAMP]]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=108382#p108382</link>
			<description><![CDATA[<p><strong>teadrinker</strong>, тоже не работает.</p>]]></description>
			<author><![CDATA[null@example.com (bib)]]></author>
			<pubDate>Wed, 19 Oct 2016 02:41:47 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=108382#p108382</guid>
		</item>
		<item>
			<title><![CDATA[Re: Получить базовый адрес модуля [SAMP]]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=108373#p108373</link>
			<description><![CDATA[<p>Полный адрес библиотеки укажите.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 18 Oct 2016 19:27:22 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=108373#p108373</guid>
		</item>
		<item>
			<title><![CDATA[Получить базовый адрес модуля [SAMP]]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=108371#p108371</link>
			<description><![CDATA[<p>Здравствуйте. Есть функция:<br /></p><div class="codebox"><pre><code>
GetModuleBaseAddr(ModuleName, ProcessID)
{
    if !(hSnapshot := DllCall(&quot;CreateToolhelp32Snapshot&quot;, &quot;uint&quot;, 0x8, &quot;uint&quot;, ProcessID))
        return &quot;Error in CreateToolhelp32Snapshot&quot;
 
    NumPut(VarSetCapacity(MODULEENTRY32, (A_PtrSize = 8 ? 48 : 32) + (A_IsUnicode ? 1032 : 516), 0), MODULEENTRY32, &quot;uint&quot;)
    if !(DllCall(&quot;Module32First&quot;, &quot;ptr&quot;, hSnapshot, &quot;ptr&quot;, &amp;MODULEENTRY32))
        return &quot;Error in Module32First&quot;, DllCall(&quot;CloseHandle&quot;, &quot;ptr&quot;, hSnapshot)
 
    ME32 := {}
    while (DllCall(&quot;Module32Next&quot;, &quot;ptr&quot;, hSnapshot, &quot;ptr&quot;, &amp;MODULEENTRY32)) {
        if (ModuleName = StrGet(&amp;MODULEENTRY32+ (A_PtrSize = 8 ? 48 : 32), 256, &quot;cp0&quot;)) {
            ME32.Addr := NumGet(&amp;MODULEENTRY32+20)
            ME32.Size := NumGet(MODULEENTRY32, (A_PtrSize = 8 ? 32 : 24), &quot;uint&quot;)
        }
    }
 
    return ME32, DllCall(&quot;CloseHandle&quot;, &quot;ptr&quot;, hSnapshot)
}
</code></pre></div><p>И пример её использования:<br /></p><div class="codebox"><pre><code>
ModBase := GetModuleBaseAddr(&quot;user32.dll&quot;, DllCall(&quot;GetCurrentProcessId&quot;))
MsgBox % &quot;modBaseAddr:`t&quot; ModBase.Addr &quot;`nmodBaseSize:`t&quot; ModBase.Size &quot; bytes&quot;
</code></pre></div><p>Всё прекрасно работает. Но вот получить базовый адрес samp.dll не получается:<br /></p><div class="codebox"><pre><code>
WinGet, PID, PID, GTA:SA:MP
ModBase := GetModuleBaseAddr(&quot;samp.dll&quot;, PID)
MsgBox % &quot;modBaseAddr:`t&quot; ModBase.Addr &quot;`nmodBaseSize:`t&quot; ModBase.Size &quot; bytes&quot;
</code></pre></div><p>В чем ошибка? Заранее спасибо. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (bib)]]></author>
			<pubDate>Tue, 18 Oct 2016 18:31:05 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=108371#p108371</guid>
		</item>
	</channel>
</rss>
