CaptainFlint

|
Posted: Fri May 13, 2005 02:34 Post subject: |
|
|
Maximus
Quote: | А вот кто бы мне сказал как без лишних извратов узнать где валяется моя ДЛЛ |
Есть один довольно извращённый способ... Уже не помню, где нашёл, не до конца понимаю, как и почему это работает, но работает.
Итак, заводишь следующую функцию (весь код проверен на VC++ 6):
Code: | extern "C" void * _ReturnAddress();
#pragma intrinsic(_ReturnAddress)
HINSTANCE GetCurrentInstance()
{
MEMORY_BASIC_INFORMATION mem;
if (VirtualQuery(_ReturnAddress(), &mem, sizeof(mem)))
{
_ASSERTE(mem.Type == MEM_IMAGE);
_ASSERTE(mem.AllocationBase != NULL);
return (HINSTANCE)mem.AllocationBase;
}
return NULL;
} |
Она возвращает текущий HINSTANCE. А потом пихаешь возвращаемый результат в качестве первого параметра в вызов GetModuleFileName(...). |
|