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