<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; Получить базовый адрес модуля [SAMP]]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=12078&amp;type=atom" />
	<updated>2016-10-19T02:41:47Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=12078</id>
		<entry>
			<title type="html"><![CDATA[Re: Получить базовый адрес модуля [SAMP]]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=108382#p108382" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong>, тоже не работает.</p>]]></content>
			<author>
				<name><![CDATA[bib]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34271</uri>
			</author>
			<updated>2016-10-19T02:41:47Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=108382#p108382</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Получить базовый адрес модуля [SAMP]]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=108373#p108373" />
			<content type="html"><![CDATA[<p>Полный адрес библиотеки укажите.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2016-10-18T19:27:22Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=108373#p108373</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Получить базовый адрес модуля [SAMP]]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=108371#p108371" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[bib]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34271</uri>
			</author>
			<updated>2016-10-18T18:31:05Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=108371#p108371</id>
		</entry>
</feed>
