如果想删除一个已经存在的接口方法,假设是IMath::Add
那么应按如下步骤操作
1:
打开idl文件删除红色部分
interface IMathFt : IUnknown{
[helpstring("方法Add")] HRESULT Add(LONG op1, LONG op2, [out] LONG* res);
[helpstring("方法Subtract")] HRESULT Subtract(LONG op1, LONG op2, [out] LONG* res);
[helpstring("方法Multiply")] HRESULT Multiply(LONG op1, LONG op2, [out] LONG* res);
[helpstring("方法Divide")] HRESULT Divide(LONG op1, LONG op2, [out] LONG* res);
[propget, helpstring("属性 Version")] HRESULT Version([out, retval] LONG* pVal);
[propput, helpstring("属性 Version")] HRESULT Version([in] LONG newVal);
};
2:打开实现add方法的组件类 在。h里删除
STDMETHOD(Add)(LONG op1, LONG op2, LONG* res);
在.cpp里删除
STDMETHODIMP CMathFt::Add(LONG op1, LONG op2, LONG* res)
{
// TODO: 在此添加实现代码
*res = op1 + op2;
return S_OK;
}
3 编译项目
注意:有人可能会说我如果全局查找"Add"的话会找到至少7处,为什么只删除了三处。注意除了这三处,其它地方是atl自动生成的,那么同理修改一个函数也可遵照上述步骤