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は非常に感謝しています。

4

1 に答える 1

0

IUnknown はすべての COM オブジェクトの基本クラスですが、C++/CLI ref クラスは基本クラスとして .NET オブジェクトを持ちます。それらはまったく関連していないため、一方から他方へのキャストはありません。C++ を使用している場合は、pCADApplication->QueryInterface() を呼び出して本当に必要なインターフェイスを取得し、そのメソッドを呼び出す必要があります。ATL スマート ポインターを使用して、参照カウント (および他の多くの一般的に役立つ COM ヘルパー関数) を管理することを強くお勧めします。

于 2013-04-18T15:33:41.757 に答える