gpt4 book ai didi

c++ - 从 Iunknown 转换为另一种类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:57:33 28 4
gpt4 key购买 nike

我需要将一个未知类型的变量转换为另一个类型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; }

请问如果有人能帮助我,我将不胜感激,

最佳答案

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

关于c++ - 从 Iunknown 转换为另一种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16086804/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com