佚名通过本文主要向大家介绍了
请问怎么在一个COM里面加函数?等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 请问怎么在一个COM里面加函数?
描述:
解决方案1:
描述:
我是个初学者。
我想在COM里面加一个函数,做了以下三步:
1. 在 DECLARE_INTERFACE_(ITest4, IUnknown)里面,加上一个声明 :
STDMETHOD(ChangeTest) (THIS_
int nToBeChanged
)
PURE;
2. 在CTest4 声明里面加入:
STDMETHODIMP ChangeTest(int nToBeChanged);
3. 在实现文件里加入 :
HRESULT CNvRender::ChangeTest(int nToBeChanged)
{
m_nChangeNo = nToBeChanged;
::MessageBox(NULL, "fasdf", "hehe",MB_OK);
return 0;
}
4. 实现并在我的文件里面用:
ITest4 *p;
......(试过了,p是有效的)
p->ChangeTest(2);
但是出了这个错: Access Violation
我做错了什么?
解决方案1:
你的p肯定没有创建成功,eg:
ITest4Ptr p;
HRESULT hr = p.CreateInstance(__uuidof(CTest4));//看看hr是不是S_OK
p->ChangeTest(2);