[DLL] - Возможность создания длл определённого типа

Тема в разделе "WASM.BEGINNERS", создана пользователем devillsd, 26 янв 2009.

  1. devillsd

    devillsd New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2008
    Сообщения:
    131
    ;----------------------------------------------------------------------------
    ; DLLSkeleton.asm
    ;----------------------------------------------------------------------------

    .386
    .model flat,stdcall

    option casemap:none
    include C:\masm32\include\windows.inc
    include C:\masm32\include\user32.inc
    include C:\masm32\include\kernel32.inc

    includelib C:\masm32\lib\user32.lib
    includelib C:\masm32\lib\kernel32.lib


    .data
    .code
    Control proc hInstDLL:HINSTANCE, reason:lol: WORD, reserved1:lol: WORD
    .WHILE
    invoke Sleep,100
    .ENDW
    mov eax,TRUE
    ret
    Control Endp

    End Control


    Что будет при загрузке такой DLL...
    Если я не правильно придумал то подскажите, мне нужно разместить процедуру в длл, процедура в виде цикла, после мне нужно в отдельном процессе вызвать эту процедуру
     
  2. int2e

    int2e New Member

    Публикаций:
    0
    Регистрация:
    9 янв 2009
    Сообщения:
    169
    При выполнении длл-мейн все потоки в процессе блокируются до того момента, пока длл-мейн не вернет управление.
    Соответственно, твоя длл повесит процесс.


    В длл-мейн создай поток на твою процедуру (CreateThread)

    После того, как длл-мейн вернет управление - потоки возобновятся, включая твой вновь созданный.
     
  3. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    int2e
    А в DllMain можно создавать потоки? У меня вроде были какие-то траблы с CreateThread в DllMain...
     
  4. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    K10
    Да
     
  5. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    оформи ее отдельной процедурой и сделай экспортируемой
     
  6. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    а dllmain это не процедура?
    ребята вы отвообще знаете о чем рассуждаете.
    Код (Text):
    1. BOOL WINAPI DllEntryPoint( HINSTANCE hinstDLL, DWORD    fdwReason, LPVOID lpReserved );
    достаточно добавить ее в список экспорта (или найти dll entry в PE-заголовке) и выдержать этот вызов, но что за проблемы не понятно. Как говорится - Код в студию!
     
  7. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    да потому что параметры к процедуре неизвестны, что будет делать процедура - неизвестно, будут ли критические секции - неизвестно. Поэтому и предложили вынести отдельной функцией. Так что выебнуться у тебя не получилось.

    П.С.: ты когда длл пишешь, тоже весь код только в дллмейн пихаешь? Тебе с такими талантами надо свою ось накодить.