接口的函数为
[id(1), helpstring("method GetTopo")] HRESULT GetTopo([in]int TopoType,[out,retval]BSTR* topo);
服务器(service)实现为:
STDMETHOD(GetTopo)(/*[in]*/int TopoType,/*[out,retval]*/BSTR* topo)
{
*topo = _com_util::ConvertStringToBSTR("hello"); }
客户端调用代码为;
::CoInitialize(NULL);
// Check the return value, hr... HRESULT hr=S_OK;
INNMServer* pNNMSvr=NULL;
hr=::CoCreateInstance(CLSID_CoNNMServer,NULL,CLSCTX_ALL,
IID_INNMServer,(void**)&pNNMSvr);
BSTR topo;
if (SUCCEEDED(hr))
{
hr=pNNMSvr->GetTopo(1,&topo);
_com_error err(hr);
AfxMessageBox(err.ErrorMessage()); AfxMessageBox(_bstr_t(topo));
pNNMSvr->Release();
}但是BSTR topo并没有值,请问是哪儿出了问题了?
[id(1), helpstring("method GetTopo")] HRESULT GetTopo([in]int TopoType,[out,retval]BSTR* topo);
服务器(service)实现为:
STDMETHOD(GetTopo)(/*[in]*/int TopoType,/*[out,retval]*/BSTR* topo)
{
*topo = _com_util::ConvertStringToBSTR("hello"); }
客户端调用代码为;
::CoInitialize(NULL);
// Check the return value, hr... HRESULT hr=S_OK;
INNMServer* pNNMSvr=NULL;
hr=::CoCreateInstance(CLSID_CoNNMServer,NULL,CLSCTX_ALL,
IID_INNMServer,(void**)&pNNMSvr);
BSTR topo;
if (SUCCEEDED(hr))
{
hr=pNNMSvr->GetTopo(1,&topo);
_com_error err(hr);
AfxMessageBox(err.ErrorMessage()); AfxMessageBox(_bstr_t(topo));
pNNMSvr->Release();
}但是BSTR topo并没有值,请问是哪儿出了问题了?
解决方案 »
- (高分求教)关于CButton的高度显亮
- 如何修改菜单项的名称和状态,在线等,解决马上结贴
- IID_IVideoWindow
- 高手给讲解一下消息队列的问题
- ●●●●●在线急等,一个回调函数引发的问题●●●●●
- 视频文件拼接该如何做?
- 难题! 怎么对审核日志进行提取然后2次开发?谢谢
- 菜鸟现在有无必要继续钻研MFC?
- 百思不得其解,纯虚函数如何做回调函数? 在线急等。(只有30分了见谅)
- 我怎么在VC++的书籍上都没有见到LPCTSTR和LPCSTR和LPTSTR等的介绍,哪些书上有介绍,推荐几本!送分!
- 如果上天再给你一次机会,你还会选择做程序员吗?
- 100分想解决我一天都郁闷的问题.在对话框上贴工具条.
STDMETHOD(GetTopo)(/*[in]*/int TopoType,/*[out,retval]*/BSTR* topo)
{
_bstr_t bstStr;
bstStr=_T("Hello");
*topo =bstStr;
}
STDMETHODIMP Cget::SayHello(BSTR psUsr, BSTR *psRes)
{
// TODO: Add your implementation code here
*psRes=::SysAllocString(L"程序员");
return S_OK;
}
绝对没有问题!!!