MFC出现的“灾难性故障的问题”和“扩展程序提供程序未能为该对象返回扩展程序问题”

先描述一下我的问题:用的是vs2017中的mfc,在对控件习惯性的右键>>添加变量  时出现了上述问题。

最近在使用MFC进行界面UI设计时忽然出现标题中的问题,我记得除了新添加了几个slider控件之外没有任何其他的操作,然后就是上网上去找,花了一天时间,相关方面的信息是真少,基本上把网上的所有方法都试了一遍,结果仍然是没有什么用。网上几种办法应该能解决绝大多数出现这个问题的人,但是报错的信息弹窗语总共就那么多,像是Linux里面编译错误最多的是“段错误”,但是bug出在哪就是千奇百怪。代码各有各的不同,不同的代码之间出现同样的问题不一定是同样的原因,所以多数方法也不一定就能解决你的问题。

先把网上的几种办法先说一下:

1.修改注册表:打开Windows下查找输入regedit,以前是 开始>>运行,但是现在点击右下角基本都有搜索框直接输入regedit,然后找到“HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/InternetSettings/Zones”,在这个项下面新增一个名字为1000的子项,并且在新增的1000项里添加一个名称为1207的DWORD键,值为0。然后关闭重新打开vs。

2.你不小心修改了resource里面dialog的名称,就是在拖控件的界面上把对话框ID改了,解决方法就是把他们改成一致,具体方法见https://blog.csdn.net/menglongbor/article/details/7609560

3.在项目文件夹中删除一些文件(这个方法我觉得基本上没什么用的  PS.你不要我觉得你要你觉得,大多数人应该没有可以修改过什么代码出现问题而且自己不知道的)具体办法见:https://blog.csdn.net/haohaojian/article/details/78919197

4.修改相关的MFCXXXDlg.cpp文件名:具体方法见:https://blog.csdn.net/chenlu5201314/article/details/52440692

5.将应用到的不在工程内的外部类,包含到工程中。具体方法见:https://blog.csdn.net/EnterLly/article/details/8739281

下面是我的问题分析,我做的这个项目有一个备份,在出现问题之后我把备份项目打开,右键添加变量仍然出现同样问题。我在网上看到有人说这可能是vs软件出现了问题,但是vs我没有任何修改器配置,也没有安装更新,最后没有办法只能用手动自己添加变量,这些都是可以自己添加的。最后一遍尝试,类向导进去之后发现除了 添加变量 还有一个 自定义变量,然后又发现了类似

成员变量有几个和其他变量不一样,就是几个变量是没有控件ID的,就去MFCxxxDlg.cpp 和MFCxxxDlg.h文件中找到这几个变量,经过几次尝试发现是一个EditControl的值变量(value),我这个代码里有许多的EditControl 的value变量为何只有这个孤零零的出现在上面这个地方,回忆了一下发现这个变量我当时第一次用右键>>添加变量>>值变量 之后名字取错了,所以创建完之后就把变量删了,但是通过这种方式创建的变量工具会自动把相关属性的属性代码添加进去。

比如:DDX_Control(pDX, IDC_EDIT13, GAMMA3);
    DDX_Text(pDX, IDC_EDIT13, gamma3);
    DDV_MaxChars(pDX, gamma3, 7);

这些代码。我只把变量定义删了重新创建,后面相关代码中的变量名修改为重新创建的变量的名字,其实这个没有任何问题,就相当于自己手动添加了变量, 事实上也没有任何问题,编译运行测试什么的都没问题,并且也达到了预期要求的功能。

解决办法:我把这个控件变量相关代码(属性方面和定义部分,功能模块不动因为只是调用而已)删掉,删掉之后就能用右键控件>>添加变量了,重新用这种方式完整的给它添加变量,问题就解决了。

 

 

 

 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页