描述:
我写了一个COM组件,遇到一点麻烦,请高手指教!
在组件中有一个全局函数,函数中需要传递接口实现类的实例指针,在该类的成员函数中调用这个全局函数当然不成问题,只要传递this指针就行了。现在我在组件中的另外一个类中也需要调用这个全局函数,该怎么办?过程简单是这样的:
CommProc(LPVOID p)//全局函数
{
//...
}
IMyInterface{};
CMyInterface:IMyInterface//接口实现类
{
public:
fuc()
{
CommProc(this);//必须传递这个this指针
}
};
COtherClass
{
otherfuc()
{
CommProc(?)//这里怎么传递CMyInterface的指针,如上面的this?????
}
}
解决方案1:
同意楼上 yuexiang(yuexiang) 的观点。
另外,也许你也可以考虑增加一个全局的long型变量,用它来存放你所要的指针。当然这样的使用的限制比较大。
两个接口之间在实际的使用中
是两个实例的,你即使传进去了,也没有意义啊!
建议你改用别的方法实现你的功能吧
比如从一个接口抛出另一个接口可能比较好
你可以在CotherClass构造时传入CMyInterface指针
或改otherfuc()为COtherClass(CMyInterface* pInterface)
不明白