我写了一个程序调用系统的com组件,然后调用其方法。
程序写出来了,而且结果正常。但是一下这个函数只能被调用一次,调用第二次就崩溃,请教大家是什么原因
CString GetDatabaseinfo()
{
CString buf;
ILsComSvr *pILs=NULL;
CLSID LSclsid;
HRESULT hr; CLSIDFromProgID(OLESTR("LsComServer.LsComSvr"),&LSclsid); //得到组件的clisid hr = CoCreateInstance(LSclsid,NULL,CLSCTX_INPROC_SERVER,__uuidof(ILSInterface),(void **)&pILs);// AfxMessageBox(pILs->GetConnectStr()); //测试可正常得到结果 buf.Format("%s",_com_util::ConvertBSTRToString(pILs->GetConnectStr())); pILs->Release(); //释放
CoUninitialize(); //释放
return buf;
}
程序写出来了,而且结果正常。但是一下这个函数只能被调用一次,调用第二次就崩溃,请教大家是什么原因
CString GetDatabaseinfo()
{
CString buf;
ILsComSvr *pILs=NULL;
CLSID LSclsid;
HRESULT hr; CLSIDFromProgID(OLESTR("LsComServer.LsComSvr"),&LSclsid); //得到组件的clisid hr = CoCreateInstance(LSclsid,NULL,CLSCTX_INPROC_SERVER,__uuidof(ILSInterface),(void **)&pILs);// AfxMessageBox(pILs->GetConnectStr()); //测试可正常得到结果 buf.Format("%s",_com_util::ConvertBSTRToString(pILs->GetConnectStr())); pILs->Release(); //释放
CoUninitialize(); //释放
return buf;
}
这行不要放到函数里,释放了就不能再调用COM服务了,放到程序结束的函数里