Visual Studio 2005 MFC 类向导经典错误的解决方案

原文地址:

http://hi.baidu.com/proglife/blog/item/81c4138bbc7a0b799f2fb41c.html

问题:

我在使用vc2005的类向导为控件生成变量时,发生了错误:在file://D:/Program Files/Microsoft Visual Studio 8/VC/VCWizards/CodeWiz/MFC/Variable/HTML/2052/default.htm的1587行提示对象不支持此属性或方法,错误页面如下:

 

 

 

点是(Y)继续运行,出现以下错误,变量类型选择框不出现:

 

分析:

打开上面的网页找到1587行,内容如下:VariableType.Clear(); 这个说明VariableType对象不存在或者没有Clear()的方法,在网页代码里向上查找,找到186行这句,知道VariableType对象的类型为CLSID:d4d285dd-2447-11d7-8bf6-00b0d03daa06,是VsWizard.WizCombo.8.0控件的。

ProgId = VsWizard.WizCombo.8.0, 
CLSID = {d4d285dd-2447-11d7-8bf6-00b0d03daa06}

为了测试此控件,特写了以下一个网页:

<html>
<body>
Text Before<br/>

<OBJECT ID="VariableType" CLASSID="CLSID:d4d285dd-2447-11d7-8bf6-00b0d03daa06" TABINDEX="2">
</OBJECT>

<br/>
Text after

<script language="jscript">
try
{
alert("typeof(VariableType): " + typeof(VariableType));
VariableType.Clear();
window.alert("hoo");
}
catch (e)
{
alert("Exception: " + e.message);
}
</script>

</body>
</html>

打开后出现错误如下图:

此页面中控件也不出现。由此可以肯定:要么 1. 该控件没有注册,要么 2. 该控件被IE的管理加载项禁止了。

解决方法:

针对第一种情况,就需要注册该控件。控件文件在D:/Program Files/Microsoft Visual Studio 8/Common7/IDE/VsWizard.dll,使用regsvr32进行注册。
针对第二种情况,请打开IE浏览器的Internet选项->程序->管理加载项,找到WizCombo Class,点击下面的启用,然后确定。
如果你在管理加载项里找不到WizCombo Class项, 请修改注册表项。具体方法如下:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Ext/Stats/{d4d285dd-2447-11d7-8bf6-00b0d03daa06}/iexplore]
"Type"=dword:00000001
"Time"=hex:d8,07,07,00,04,00,1f,00,0f,00,19,00,0c,00,90,02
"Count"=dword:0000000c
"Flags"=dword:00000004
"Blocked"=dword:00000005
拷贝以上到一个文本文件,后缀命名为.reg,然后双击该文件导入注册表信息,经过以上操作,你会发现IE的管理加载项里会多一项WizCombo Class,启用,问题应该可以解决。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值