如何在注入的DLL中正确终止工作线程?

Ome*_*mer 7 c++ windows dll winapi multithreading

我正在向某个进程注入一个DLL,该DLL有一个正在运行消息循环的工作线程.

我想正确地退出线程,即发布一个退出消息(PostThreadMessage)并等待它(WaitForSingleObject).

我在哪里可以等待这个线程关闭?我无法在DLL_PROCESS_DETACH上执行此操作,因为此时所有线程都已关闭或终止,我不知道该进程何时即将关闭.

我唯一的想法是,有没有办法拦截主线程消息循环并寻找WM_CLOSE\DESTROY消息?

我很想听到任何其他想法\解决方案.

编辑:
尝试使用带有WH_CALLWNDPROC的SetWindowsHookEx挂钩主线程,但它没有很好地工作,我设法挂钩并接收线程的消息.但是,我没有收到WM_QUIT消息,只有WM_DESTROY和WM_NCDESTROY,它们都与windows相关联.

谢谢,
奥梅尔

cpr*_*mer 3

如果您需要对“About-To-Close”执行某些操作,则需要使用SetWindowsHookEx和 WH_CALLWNDPROC 来挂钩主线程,并查找 WM_CLOSE 并采取操作/通知线程关闭。