解决VC++添加Activex时,不能创建变量的错误

这几天需要利用ActiveX的控件实现功能。本来在布局里面直接添加Activex控件,然后为控件绑定一个变量就可以使用,结果这两天死活绑定不能变量,错误如下图


image.png

提示在1212行 无法获取未定义或 null 引用的属性 Enumx“” URL:file:///C:/Program%20Files%20(x86)/Microsoft%20Visual%20Studio%2010.0/VC/VCWizards/CodeWiz/MFC/Variable/HTML/1033/default.htm

原因:

最后发现原因是这个坑爹classwizerd在读取typelib所指向的dll时,如果dll有 %systemroot% 这类约定路径时,找不到dll


image.png

修复方法:

  • 通过在注册表HKEY_CLASSES_ROOT\CLSID\ 中搜索控件的名称或者dll来找到控件对应的项目,在项中找到TypeLib的默认值


    image.png
  • 在注册表中HKEY_CLASSES_ROOT\TypeLib\ 用TypeLib的默认值进行搜索

  • 找到项后,在项/x.x/0/win32的默认值中看看是不是有类似%systemroot%的约定路径,把它改为绝对路径(修改可能有权限问题,这个搜搜就能解决)就可以了。


    image.png

参考

http://blog.csdn.net/ssmile/article/details/7103723

你可能感兴趣的:(解决VC++添加Activex时,不能创建变量的错误)