Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: procédure DllMain pas appelée Jeu 19 Mar 2015 - 13:06 | |
| J'ai voulu ajouter une libération générale des ressources utilisées dans KGF.dll, lorsque le programme s'arrête ou lorsqu'on décharge la dll par DLL_OFF. Pour cela, je fais ceci: - Code:
-
procedure DllMain(reason: integer) ; var buf : array[0..MAX_PATH] of char; loader : string; begin { DLL_PROCESS_ATTACH gets called when the application starts and DLL_THREAD_ATTACH when a new thread inside an attached application is started. DLL_PROCESS_DETACH gets called when an application attached to your application quits. DLL_THREAD_DETACH gets called when a thread inside an attached application quits. } case Reason of Dll_Process_Attach: MessageBox(0, 'Process Attach', 'Info', mb_Ok); Dll_Thread_Attach: MessageBox(0, 'Thread Attach', 'Info', mb_Ok); Dll_Thread_Detach: MessageBox(0, 'Thread Detach', 'Info', mb_Ok); Dll_Process_Detach: MessageBox(0, 'Process Detach', 'Info', mb_Ok); end; end; (*DllMain*)
begin DllProc := @DllMain; DllProc(DLL_PROCESS_ATTACH) ; ... Or, Thread Attach, Thread Detach et Process Detach ne sont jamais appelés. J'ai essayé de définir une routine EitProc selon le même principe, mais elle n'est jamais appelée non plus. Je suis en train de créer une fonction normale qui purgera tout. Mais pourquoi ces 3 messages ne sont jamais envoyés à la DLL ? J'aimerais bien appeler ma fonction de purge automatiquement, en cas de DLL_OFF. | |
|