首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

注册ActiveX失败【高分求解】

2013-12-19 
注册ActiveX失败【高分求解】【急】使用的ActiveX是第三方提供的,对方只提供了一个tlb文件,将tlb文件导入到工

注册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 所以看不到, 
可以试试启动第三方程序后强制结束之,看看是否有这个控件
[解决办法]

引用:
有可能第三方软件在退出时做了 UnRegister 所以看不到, 
可以试试启动第三方程序后强制结束之,看看是否有这个控件


应该是这个原因
[解决办法]
有几种情况,你先观察下他的那个什么ROT软件目录下是否有那个active控件,若有,估计他是没注册,采用的模式可能是如4L说的软件运行时注册,退出时反注册。
若无,可能是他运行时释放出来并注册,退出时删除。
还有可能就是他就是那个ROT本身。

热点排行