描述:
我的代码如下:
idl
[id(2), helpstring("method open")] HRESULT open([in]long portnum);
.cpp
STDMETHODIMP CCSerial::open(long portnum)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
// TODO: Add your implementation code here
this->m_ComPort.Open(portnum,LsComm::CComPort::AutoReceiveBySignal);
this->m_ComPort.SetReceiveFunc((FOnReceiveData)OnReceiveData,this);
return S_OK;
}
void OnReceiveData(LPVOID pSender,void* pBuf,DWORD InBufferCount)
{
BSTR * receive;
LONG nSize = InBufferCount;
Fire_OnReceive(receive, nSize); //这里编译不能通过.
}
Fire_OnReceive(receive, nSize)直接放到CCSerial::open函数中就可以编译.
我的问题是:自己定义的方法(不是COM的方法)中不能调用连接点事件吗?
解决方案1:
Fire_OnReceive 是 CCSerial 的成员函数啊,你这样当然是不行的
void OnReceiveData(LPVOID pSender,void* pBuf,DWORD InBufferCount)
-------------------------------------------------------------------------
void OnReceiveData( CCSerial*pSer , LPVOID pSender,void* pBuf,DWORD InBufferCount )