dll的ExitInstance()函数

gbjsy 2021-02-25 06:43:23
使用SetWindowsHookEx将DLL注入指定线程并显示窗口 ,InitInstance()内使用::GetCurrentThreadId()获取到的线程和注入的线程一致,但退出时ExitInstance()内使用::GetCurrentThreadId()获取到的线程和注入的线程不一致,导致出错大退,是什么原因?该怎么解决。
...全文
187 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2021-02-28
  • 打赏
  • 举报
回复
可以试试 用个全局变量 把线程句柄、线程ID记录下来
gbjsy 2021-02-28
  • 打赏
  • 举报
回复
引用 2 楼 zgl7903 的回复:
可以试试 用个全局变量 把线程句柄、线程ID记录下来
记录了 我也用if判断了,确实不一样 只要不一样,dll就不在主线程了 就崩溃退出。 Dll通过SetWindowsHookEx注入多个进程的主线程(局部钩子),退出加载器后所有注入的DLL系统会自动卸载,但个别进程会崩溃,崩溃的进程发现是上面原因引起的。暂时无解中。
gbjsy 2021-02-27
  • 打赏
  • 举报
回复
资源还没destroy,外面就把dll卸载了。

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧