dllmain и экспортируемая функция выполняются как потоки или как отдельные процессы?

это скорее концептуальный вопрос, и он может быть довольно простым, я действительно не нахожу хороших ресурсов для изучения dll,

мне нужно создать dll (динамическое связывание во время загрузки), для которого требуется, чтобы функция 1 запускалась при загрузке dll и работала в фоновом режиме в течение всего времени,

в то время как функция2 должна быть экспортирована, которая будет вызываться приложением несколько раз,

function1 предоставляет объект, который необходимо использовать в function2,

я планирую использовать function1 в качестве функции точки входа (dllmain) при экспорте function2.

поскольку функция dllmain вызывается системой, а экспортируемая функция вызывается приложением, они работают как два потока или как два отдельных процесса?

также правильно ли использовать dllmain и экспортировать, как описано выше, чтобы выполнить то, что мне нужно?


person user1176743    schedule 07.04.2012    source источник
comment
Что не так с кнопкой Shift на клавиатуре? Это нечитаемо.   -  person Hans Passant    schedule 07.04.2012


Ответы (1)


«Advanced Windows» Джеффри Рихтера — хорошее место для изучения DLL.

В вашем случае что-то вроде этого сделает эту работу.

BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
{
   if (fdwReason == DLL_PROCESS_ATTACH)
   {
       //start thread with function1()
       begin_thread_ex(..., &function1, ....)
   }
}

__declspec(dllexport) function2()
{
    ....
}
person dpiskyulev    schedule 07.04.2012