2

我需要将一个变量从 Iunknown 类型转换为另一种类型(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;  } 

PLZ如果有人怎么能帮助生病非常感谢thks,

4

1 回答 1

0

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

于 2013-04-18T15:33:41.757 回答