代码如下:
   #import "bin/RSKCom.dll" no_namespace   IRSKInterfacePtr m_hCOMPtr;   CoInitialize(NULL);       HRESULT hr = m_hCOMPtr.CreateInstance(__uuidof(RSKInterface));
if (!SUCCEEDED(hr))
{
   return false;
}到这里就 失败return了。  以前都 是好使的。而且在两台机器 上都好使。现在突然就不行了,两台机器都不行。我也没有注销组件。并且我重新注册都不好使。 组件本身是没有变过的。是别人给我的。这个组件是 给 客户端发消息用的,用法如下_bstr_t bstrRet = m_hCOMPtr->NotifyAbnormal("192.168.123.125", "10000", "16", "2009-05-19 11:22:00", "abc", "111");//1110表示成功
 我真是不知道原因 。很纳闷。 不知道这里有没有人知道。

解决方案 »

  1.   

    我双观察了一下  HRESULT hr = m_hCOMPtr.CreateInstance(__uuidof(RSKInterface)); 
    中的hr, 显示的是 “没有注册类别”,可是我确实已经注册了啊。
      

  2.   

    找到原因 了。 是由于组件没有注册导致的,  但是我的组件是 注册过的。不知道是什么原因 。我用 regsvr32注册总是不成功。我又用其它 方法注册好了。
      

  3.   

    组件在运行期间如果出现过异常,注册表信息有时就丢失,原因不知道为什么。另外使用regsvr32注册不成功一般是因为依赖的DLL文件找不到。使用DEPENDS.EXE工具检测下是否缺少文件。