吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1363|回复: 7
收起左侧

[求助] MFC dll注入后如何显示非模态对话框?

  [复制链接]
xiaoheilian 发表于 2020-2-4 19:20
Snipaste_2020-02-04_19-16-27.png

创建MFC dll后xxxApp的类就是入口类了,我的非模态框类是成员变量
BOOL CMFCLibrary7App::InitInstance()函数是xxxApp类的初始化函数,我在这函数里面
mdlg->Create(IDD_DIALOG1);
mdlg->ShowWindow(SW_SHOWNORMAL);
显示我的非模态框。
当我将完成的dll注入到进程后,非模态框只是一闪而过,请问这是怎么回事?
我使用AfxBeginThread()函数新建线程来调用
mdlg->Create(IDD_DIALOG1);
mdlg->ShowWindow(SW_SHOWNORMAL);
会导致被注入进程卡死。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

cdj68765 发表于 2020-2-4 19:44
本帖最后由 cdj68765 于 2020-2-4 19:47 编辑

如果我的经验没错的话,一闪而过是因为线程运行到了return所以退出了,你需要用一个死循环不让线程退出。当然错了的话当我没说
 楼主| xiaoheilian 发表于 2020-2-4 20:02
本帖最后由 xiaoheilian 于 2020-2-4 20:04 编辑
cdj68765 发表于 2020-2-4 19:44
如果我的经验没错的话,一闪而过是因为线程运行到了return所以退出了,你需要用一个死循环不让线程退出。当 ...

我在mdlg->ShowWindow(SW_SHOWNORMAL);
后面加入了死循环
while(true){
}
但是弹出来的非模态框会卡死
之前我已经试过在
InitInstance()函数里面加入
while(true){
mdlg->Create(IDD_DIALOG1);
mdlg->ShowWindow(SW_SHOWNORMAL);
}
都会造成非模态框卡死
nstar1221 发表于 2020-2-4 20:24
SherryMefum 发表于 2020-2-4 20:43
大看雪专家人士多。
 楼主| xiaoheilian 发表于 2020-2-4 23:52

我觉得应该是被释放了,可是刚写mfc dll,不太明白如何维持
nstar1221 发表于 2020-2-5 05:59
xiaoheilian 发表于 2020-2-4 23:52
我觉得应该是被释放了,可是刚写mfc dll,不太明白如何维持

在框架对象中创建一个成员变量试试
 楼主| xiaoheilian 发表于 2020-2-5 14:30
nstar1221 发表于 2020-2-5 05:59
在框架对象中创建一个成员变量试试

我的非模块框类是框架对象的成员变量
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 20:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表