我想将一个组件系统中的组件A进行包装成组件B,B中每个函数每个除了实现组件A对应函数的功能外,还实现一些添加的功能
为了让原组件系统能直接调用包装后的组件B,是不是需要将B的组件名、guid和接口名,函数名设为和A一样?
但是,这样又有个问题,B中需要调用A的函数,但是B和A的guid一样,所以调用时出现错误,请教各位,如果我想实现这种包装,有没有其他的方法啊?谢谢
为了让原组件系统能直接调用包装后的组件B,是不是需要将B的组件名、guid和接口名,函数名设为和A一样?
但是,这样又有个问题,B中需要调用A的函数,但是B和A的guid一样,所以调用时出现错误,请教各位,如果我想实现这种包装,有没有其他的方法啊?谢谢
不要使用包容新建一个接口实现新的功能,并暴露出组件A的接口即可.这样B组件同时拥有A,B组件的功能
STDMETHODIMP CMathOpt::Add(long lParam1, long lParam2, long *plResult)
{
// TODO: Add your implementation code here
CoInitialize(NULL);
CLSID clsid;
CLSIDFromProgID(OLESTR("Math.MathOpt"), &clsid);
CComPtr<IMathOpt> pMathOpt; //智能指针
pMathOpt.CoCreateInstance(clsid);
pMathOpt->Add(lParam1,lParam2,plResult);
pMathOpt.Release();
CoUninitialize(); return S_OK;
}
是这样使用吧?