Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Parar una dll

Estas en el tema de Parar una dll en el foro de C/C++ en Foros del Web. Buenas, Estoy programando una dll en c++ y no entiendo cuándo en este código: BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { ...
  #1 (permalink)  
Antiguo 27/01/2009, 13:39
 
Fecha de Ingreso: febrero-2008
Mensajes: 43
Antigüedad: 16 años, 2 meses
Puntos: 0
Parar una dll

Buenas,

Estoy programando una dll en c++ y no entiendo cuándo en este código:


BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved )
{
switch(ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
g_hModule = hModule;
Init();
return TRUE;

case DLL_PROCESS_DETACH:
Cleanup();
return TRUE;
}


Se llama con el caso DLL_PROCESS_DETACH

Si alguien pudiera indicarme cómo llamarlo con ese case...
Gracias
  #2 (permalink)  
Antiguo 27/01/2009, 15:00
Avatar de MeduZaPaT  
Fecha de Ingreso: enero-2009
Ubicación: USA
Mensajes: 106
Antigüedad: 15 años, 3 meses
Puntos: 3
Respuesta: Parar una dll

esos son constantes numericas generalmente.
  #3 (permalink)  
Antiguo 27/01/2009, 18:17
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Parar una dll

Cuando ul_reason_for_call es igual a DLL_PROCESS_DETACH quiere decir que tu DLL esta siendo descargada. Mira la referencia en la MSDN.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #4 (permalink)  
Antiguo 28/01/2009, 09:36
 
Fecha de Ingreso: febrero-2008
Mensajes: 43
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Parar una dll

Muchas gracias, ya lo he solucionado.
El problema era que cuando finalizaba el thread, llamaba al punto de entrada de dllMain con
DLL_THREAD_DETACH, no con DLL_PROCESS_DETACH.

Gracias a todos por vuestras respuestas.

Nos vemos por el foro :)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:44.