You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MFC GetParent()返回NULL:旧扩展库适配现代VC++编译器故障排查

MFC文件对话框扩展库在现代VC++中GetParent()返回NULL的问题

1999至2000年初,我开发的诸多应用均使用一款MFC导出对话框扩展库,该库可为文件扩展名添加筛选器(当时MFC未内置此功能)。如今MFC已内置该功能,但修复单个库比修改所有应用更简便。

使用VC++ 6编译时一切正常,但使用VC++ 17(MFC140)等现代编译器时出现问题。我多年来对该库的修改内容、测试示例代码已准备完毕,测试示例中点击「文件->导出」即可复现问题。

问题出在库的void CFileExportDialog::OnTypeChange()方法的如下代码段:

CWnd *fileNameBox = GetParent()->GetDlgItem(edt1);
if (fileNameBox == NULL)
    fileNameBox = GetParent()->GetDlgItem(cmb13);

不知为何GetParent()返回NULL(无法执行后续GetDlgItem()操作),该代码在VC++ 6及MFC7中可正常运行,恳请告知变更原因及修复方案。

内容的提问来源于stack exchange,提问作者LimetaPeta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 01:01:24