服务器出现意外情况,急!
请教各路大侠:
我的程序刚开始运行是没有问题的,可是当运行起来,大约一个多小时不给它响应(即不动那台电脑,也不给他鼠标响应)时,就会弹出对话框“sc1=80010105,runscript d read failed”(这是我自动设的弹出对话框),查了查80010105的情况是“服务器出现意外情况”,相关代码如下:
CoInitialize(NULL);
HRESULT hr=S_OK;
IGlobalInterfaceTable *piGIT=NULL;
hr = CoCreateInstance(CLSID_StdGlobalInterfaceTable, NULL,
CLSCTX_INPROC_SERVER,
IID_IGlobalInterfaceTable, (LPVOID*)&piGIT);
if(hr!=0)
AfxMessageBox("GlobalInterfaceTable CoCreateInstance in Runscript d failed");
IDispatch *piDispatch=NULL;
hr = piGIT->GetInterfaceFromGlobal(m_dwCookie, __uuidof(piDispatch),(void**)&piDispatch);
if(hr!=0)
AfxMessageBox("GlobalInterfaceFromGlobal in runscript d failed");
DISPID dispid;
OLECHAR* func=L"ReadRealData1";//调用的函数名
piDispatch->GetIDsOfNames(IID_NULL,&func,1,GetUserDefaultLCID(),&dispid);
VARIANT var;
VARIANT var1;
EXCEPINFO excepInfo;
UINT errArg;
VariantInit(&var);
VariantInit(&var1);
DISPPARAMS DispParams;
DispParams.cArgs = 1;//表示参数的计数
DispParams.cNamedArgs = 0;//表示命名参数的计数
DispParams.rgdispidNamedArgs = NULL;//表示命名参数的调度 ID
VARIANTARG* pArg=new VARIANTARG[DispParams.cArgs];
DispParams.rgvarg=pArg;//表示对参数数组的引用
memset(pArg,0,sizeof(VARIANT)*DispParams.cArgs);
DispParams.rgvarg[0].vt=VT_VARIANT|VT_BYREF;
DispParams.rgvarg[0].pvarVal=&var;
var1.vt = VT_I4;
SCODE sc;//SCODE 类型等效于 HRESULT
try
{
sc=piDispatch->Invoke(dispid,IID_NULL,0,DISPATCH_METHOD,&DispParams,&var1,&excepInfo,&errArg);
CString strsc;
strsc.Format("sc1=%0x,runscript d read failed",sc);
if(sc!=0)
AfxMessageBox(strsc); //ysm 091229 change
}
请问各路大侠:出现这种问题的原因是什么?传递的参数不对吗?还是我的com接口的问题?还是计算机设置的问题?请问如何解决!