Plugins

Тема в разделе "WASM.WIN32", создана пользователем Marazm, 21 фев 2005.

  1. Marazm

    Marazm Member

    Публикаций:
    0
    Регистрация:
    8 мар 2004
    Сообщения:
    95
    Как-то взялся делать поддержку плагинов. Даже сделал;) Но количество их ограничевается 10-ю, т.к. я выделяю 10 двордов под адреса. А вот, скажем, в PE TOOLS хоть 150 их запихни... Как же такое замутить?
     
  2. Funbit

    Funbit Member

    Публикаций:
    0
    Регистрация:
    13 апр 2003
    Сообщения:
    92
    Адрес:
    Russia
    может быть я что-то не понимаю, но ..

    во-первых, неужели жалко несколько лишних dword'ов памяти в неинициализированной секции?

    во-вторых, если уж очень хочется выделить именно столько, сколько нужно, то: HeapAlloc, HeapReAlloc ?

    ну, или VirtualAlloc с MEM_RESERVE.



    да, и под какие адреса то?
     
  3. Marazm

    Marazm Member

    Публикаций:
    0
    Регистрация:
    8 мар 2004
    Сообщения:
    95
    Мдя, извените, затупил. Адреса функций экспортируемых. Ок, выделил я сколькон нужнл, но ведь нужно в оконной процедуре обрабатывать какой плагин запускать. Если не ясно: все плагины загружаются, вычилсяются адреса функций и они сохраняются. Далее - при приходе сообщения от меню программа вызывает функцию по тому адресу. Как это организовать? Ведь не буду я 150 меню под плагины отводить?!
     
  4. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    прочитай в статье "Как написать аддин для винасма" как это сделано в винасме: адреса всех однородных экспортируемых функций плагинов записываются в список, и каждое сообщение посылается каждой функции, если функция его распознала, она возвращает истину, и дальше обработка его прекращается, и, кроме этого, после того как сам винасм обработает WM_COMMAND, он каждой функции посылает дополнительное сообщение о том, что коанда обработана: например, тебя интересует не команда "скомпилировать", а момент, когда уже скомпилировано, чтобы затем что-нибудь сделать (например, упаковать готовый бинарник)... вот-с. а меню - плагин запрашивает себе уникальный идентификатор у главного окна, в котором стоит банальный счетчик, и никаких конфликтов.
     
  5. Marazm

    Marazm Member

    Публикаций:
    0
    Регистрация:
    8 мар 2004
    Сообщения:
    95
    shoo

    Спасибо. Все оказлось нескольно сложнее чем я ожидал... Будем пробовать