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
相关产品推荐
相关产品推荐

