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

提示在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

修复方法:
-
通过在注册表HKEY_CLASSES_ROOT\CLSID\ 中搜索控件的名称或者dll来找到控件对应的项目,在项中找到TypeLib的默认值
image.png
-
在注册表中HKEY_CLASSES_ROOT\TypeLib\ 用TypeLib的默认值进行搜索
-
找到项后,在项/x.x/0/win32的默认值中看看是不是有类似%systemroot%的约定路径,把它改为绝对路径(修改可能有权限问题,这个搜搜就能解决)就可以了。
image.png
网友评论