客户端调用代码:
USES_CONVERSION;
COSERVERINFO ServerInfo2={0,A2W("192.168.3.19"),NULL,0};//123-3msrycqcepp
MULTI_QI MultiQi2={&IID_Icom27,NULL,NOERROR};
hr=CoCreateInstanceEx(CLSID_com27,NULL,CLSCTX_REMOTE_SERVER/*CLSCTX_LOCAL_SERVER*/,&ServerInfo2,1,&MultiQi2);


if(FAILED(hr))
{
MessageBox("创建对象实例失败!");
return false;
}//以上工作正常 ;
m_pcom = (Icom27*)MultiQi2.pItf;
hr = m_pcom->hello();如此,hr返回结果 :-2147024891
查询ERRORLOOKUP, 显示拒绝访问.这是什么原因?

解决方案 »

  1.   

    这说明,当前用户只有激活权限,没有访问权限,在dcomcnfg或oleview配一下,xp下用com+配。
      

  2.   

    可能是你的client和server不在同一個網域﹐我用delphi寫的也有這樣的問題
      

  3.   

    USES_CONVERSION;
    COSERVERINFO ServerInfo2={0,L"192.168.3.19",NULL,0};//123-3msrycqcepp
    MULTI_QI MultiQi2={&IID_IUnknown,NULL,NOERROR};
    hr=CoCreateInstanceEx(CLSID_com27,NULL,CLSCTX_REMOTE_SERVER/*CLSCTX_LOCAL_SERVER*/,&ServerInfo2,1,&MultiQi2);


    if(FAILED(hr))
    {
    MessageBox("创建对象实例失败!");
    return false;
    }IUnknown *pUnknown = (IUnknown *) MultiQi.pItf;
    hr = pUnknown->QueryInterface(IID_Icom27,(void**)&m_pcom);
    pUnknown->Release();
    hr = m_pcom->hello();