佚名通过本文主要向大家介绍了使用ATL创建一个COM组件,在构造函数中调用接口函数,然后在接口函数中再调用另外的接口函数会出错。等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 使用ATL创建一个COM组件,在构造函数中调用接口函数,然后在接口函数中再调用另外的接口函数会出错。
描述:
解决方案1:
描述:
比如创建一个COM组件test,有两个接口函数FunA(),FunB().
在FunA()中调用FunB().
在构造函数test()中调用FunA(),则可以正常进入FunA(),但是再进入FunB()就会出错。
如果是正常的外部调用则没有问题。不知道和构造有什么关系。
解决方案1:
up一下, 希望高手来解答
解决方案2:试过了,确实有这个情况,而且我两个函数都不是暴露的接口,而在一般的类中这样调用却没有问题。
解决方案3:真的吗?没试过,试试看先。
解决方案4: 把你的FunB()设为普通的COM成员函数,而非接口函数.
试试。
呵呵,很正常啊:
因为在构造函数中,组件还没有构造完全,不能在基类的函数FunA中调用由派生类test实现的FunB
构造函数调用时只是类对象创建,组件的某些对象可能还没有创建,你可以调试代码,看看哪一行代码出错,然后再判断出了什么问题