关于网友提出的“ COM调用的问题,如何调用COM中封装的接口,在线等待”问题疑问,本网通过在网上对“ COM调用的问题,如何调用COM中封装的接口,在线等待”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: COM调用的问题,如何调用COM中封装的接口,在线等待
描述: 我的程序要调用HSCOMMX.DLL这个COM组件,在COCREATEINSTANCE()后,我调用HSCOMMX.DLL里的任何函数,都报错!!
代码如下:
interface TestTeam : public IUnknown
{
public:
virtual void Create();
virtual void SetConnect();
virtual int Connect();
};
void CHSARClient::Test()
{
CLSID CLSID_Comm;
TestTeam *pTestTeam = NULL;
HRESULT hr=CoInitialize(NULL);
hr=CLSIDFromProgID(L"HsCommX.Comm",&CLSID_Comm);
if(!FAILED(hr))
{
hr=CoCreateInstance(CLSID_Comm,
NULL,
CLSCTX_INPROC_SERVER,
IID_IUnknown,
(LPVOID *)(&pTestTeam));
}
if(!SUCCEEDED(hr))
{
MessageBox("加载HsCommX控件失败!",NULL,NULL);
return;
}
pTestTeam->Create();//运行到这就报错!!!!!
pTestTeam->SetConnect();
}
解决方案1: 先Regsvr32注册一下HSCOMMX.DLL
然后CoCreateInstance,再调用接口
如果还有问题,查看一下返回的错误信息
以上介绍了“ COM调用的问题,如何调用COM中封装的接口,在线等待”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3528280.html