现象:
最近在创建一个组件时,当调用CoCreateInstance后,返回0x80040154(没有注册类别),导致创建组件失败。
分析:
直观的意义可以理解为没有注册com组件,不过,经过我多次确认的确我是注册了这个组件的。
于是上网各种google,baidu,消耗了很多时间,还是没有解决这个问题,
最后一气之下,全部从新来建立这个工程,因为我以前也建立了各种COM工程都没有问题,肯定是我那个步骤搞错了,
后面发现是FinalConstruct返回失败了!
FinalConstruct返回失败,紧接着系统会调用FinalRelease,也就说这个组件已经创建失败了,返回0x80040154也可以理解了。
总结:
以后要遇到这些问题,一定要冷静的去分析,然后,一些 断言应该加的就要加,
试想,如果当前我写代码时,对于返回错错误时如果加了asssert,或者我认真调试每一个接口时,就不会出现这样的问题了。