首页 新闻 会员 周边

求助一个MFC创建主窗口失败的问题

0
悬赏园豆:20 [已关闭问题] 关闭于 2022-04-21 09:45

遇到这样一个问题,大家有遇到的吗?不知道该怎么处理。基于MFC框架开发的一个小软件,有一台机器(处理器:Intel E7-4820 2GHz,内存:8G)的VMware虚拟机(Windows Server 2008 R2 64位

出现如下现象:

1、利用psexec工具分别以session 0或者System用户启动,进程都在创建主窗口类的Create处失败。而后消息循环RunModalLoop()也是直接返回了;

2、以普通用户且非session 0启动进程就是正常的;

3、直接使用CreateWindow创建主窗口的一个普通的win32程序,以session 0和System用户创建也可以正常运行。

MFC
问题补充:

1、进一步分析后发现,是MFC默认生成的对话框里面有两个按钮,而刚好在CDialog::Create函数内部调用RegisterClassW进行button的类注册时失败,导致主对话框窗口失败,LastError拿到了8(ERROR_NOT_ENOUGH_MEMORY),而电脑里面从任务管理器看内存还有好几个G,VMmap查看系统中处于Free状态的内存也还有500多MB。

2、也排除了Atom Table不够的情况:系统中注册成功过的Atom都是0xC0打头。

3、把对话框中的两个按钮去掉后,进程就正常启动了

Arthurian的主页 Arthurian | 小虾三级 | 园豆:1123
提问于:2022-02-14 13:59
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册