注册ActiveX失败【高分求解】【急】
使用的ActiveX是第三方提供的,对方只提供了一个tlb文件,将tlb文件导入到工程,可以看到生成了.h和.cpp文件,这个ActiveX在注册表里找不到注册信息,是需要第三方软件运行起来时,在VC++的ROT View工具中可以看到这个ActiveX控件。
现在的问题是,我在程序中:
// XXX是ActiveX的名字,可以确定名字没有错
HRESULT hr = ::CoGetObject(L"XXX", 0,IID_IDispatch, (void**)&vAuto);
if(SUCCEEDED(hr))
{
return TRUE;
}
else
{
return FALSE;
}
这里总是失败,返回FALSE!如果直接看监视L"XXX",看到的也是0
我在InitInstance()里也做了:
if( FAILED(CoInitialize(NULL)))
return false;
目前试了各种办法都不行,不知道该如何解决,请高手指点!
[解决办法]
第三方软件运行才可以看到这个控件,那你就搜索这个控件,看是不是在硬盘里某个地方,找到后就直接用regsvr32来注册
[解决办法]
可以看到这个控件说明已经注册了。那你就先直接将这个控件拖到对话框上看起不起的来
[解决办法]
有可能第三方软件在退出时做了 UnRegister 所以看不到,
可以试试启动第三方程序后强制结束之,看看是否有这个控件
[解决办法]