требуется определить имя DLL из нее самой

Тема в разделе "WASM.WIN32", создана пользователем Asterix, 10 окт 2005.

  1. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    subj



    что-то я торможу за что зацепится, какие API

    использовать, а под рукой нет даже справки по API
     
  2. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Поискать свой инстанс в списке модулей текущего процесса?
     
  3. Skif

    Skif New Member

    Публикаций:
    0
    Регистрация:
    31 дек 2003
    Сообщения:
    55
    В DllMain передается hinstDLL. Передаем его первым параметром в GetModuleFileName(hModule, lpFilename, nSize) - и все готово :derisive:
     
  4. Dimson

    Dimson New Member

    Публикаций:
    0
    Регистрация:
    7 июл 2005
    Сообщения:
    59
    Адрес:
    Russia
    Можно вообще без API. При помощи директории экспорта. Там поле Name имеется. Находишь базу модуля, затем адрес директории экспорта, а там, в поле Name, есть RVA имени модуля (очень часто оно совпадает с именем файла).
     
  5. _staier

    _staier New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2003
    Сообщения:
    738
    Адрес:
    Ukraine
    HMODULE GetCurrentModule()

    {



    MEMORY_BASIC_INFORMATION mbi;

    static int dummy;

    VirtualQuery( &dummy, &mbi, sizeof(mbi) );



    return reinterpret_cast<HMODULE>(mbi.AllocationBase);

    }



    string OurFileName()

    { string tmp;

    tmp.resize(2000);

    int i = GetModuleFileName(GetCurrentModule(),(char *)tmp.c_str(),2000);

    tmp.resize(i);

    return tmp;



    }
     
  6. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Спасибо всем.