積読日記
Wed, 29 JeJune 2005 [長年日記]
tDiary 224日目
■ [work] C#とアンマネージC++の連携
C# で取ってきた COM オブジェクトをアンマネージ C++ で利用するのに苦労した.
アンマネージ C++ をマネージC++でラッパした DLL のプロジェクトを C# のプロジェクトの参照に追加. これで C# からアンマネージ C++ を呼べるようになる.
C# から渡された COM オブジェクトを, Marshal.GetIUnknownForObject で IUnknown を指す IntPtr へ変換し, 更に reinterpret_cast で IUnknown* へ変換し, QueryInterface で希望のインタフェイスを取得. という手順で実現できたが, マネージコードをよく理解できていないので不安が残る.