ATL 8.0(VS2005) 我要删除一个接口方法

 如果想删除一个已经存在的接口方法,假设是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自动生成的,那么同理修改一个函数也可遵照上述步骤

你可能感兴趣的:(ATL 8.0(VS2005) 我要删除一个接口方法)