从Iunknown转变为另一种类型

时间:2013-04-18 15:17:20

标签: c++ command-line-interface

我需要将一个变量从Iunknown类型转换为另一个 type(SpaceClaim :: Api :: V10 :: Session ^)我正在使用c / cli而我找不到任何解决方案

修复这个prb是代码:

 gcroot<SpaceClaim::Api::V10::Session^>  m_piApplication;  

STDMETHODIMP CEMWCADLinkCtrl::SetEMWCADLinkApplication(IUnknown* pCADApplication)
 {  
if ( pCADApplication == NULL ) 
return S_FALSE;  
 m_piApplication = (SpaceClaim::Api::V10::Session^)pCADApplication;  //error
  return S_OK;  } 

如果有一个人怎么可以帮助我生病,那就

1 个答案:

答案 0 :(得分:0)

IUnknown是所有COM对象的基类,而C ++ / CLI ref类将.NET对象作为其基类。从一个到另一个没有铸造,因为它们没有任何关联。如果您使用的是C ++,那么您应该调用pCADApplication-&gt; QueryInterface()来获取您真正需要的接口,然后调用该方法。我强烈建议使用ATL智能指针来帮助管理引用计数(以及许多其他通常有用的COM辅助函数)。