实在没有分了,各位高手指点指点。
COM的问题:
我定义了一个方法:
[id(8), helpstring("method GetNewData")] HRESULT GetNewData([out, retval]BSTR* strRet);
STDMETHODIMP CComConnect::GetNewData(BSTR *strRet)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
// TODO: Add your implementation code here
BOOL bLock = 0;
CDataStruct* pGet = new CDataStruct;
BSTR* strMid = new BSTR;
_bstr_t str;
do
{
bLock = m_pLock->IsLocked();
if(bLock == 0)
{
m_pLock->Lock(INFINITE);
pGet = pDataHead->m_pNext;
str = pGet->lpBuf;
*strMid = str;
//断开第一个连接点
if(pDataHead->m_pNext != NULL)
{
pDataHead->m_pNext = pDataHead->m_pNext->m_pNext;
}
//**************
m_pLock->Unlock();
break;
}
}
while(1);
return strMid;//编译错误,不知道为什么?return ** strMid可以通过。
return S_OK;
}
D:\程序\Client\ComConnect.cpp(316) : error C2440: 'return' : cannot convert from 'unsigned short ** ' to 'long'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast