com ラッパーを持つ C# のコードがいくつかあります。この com ラッパーは、ネイティブの C++ アプリケーションで使用されます。C++ コードは、c# ライブラリからクラスのインスタンスの配列を返すメソッドを使用します。インスタンスは、次のような SafeArray から取得されます。
for (long i =min; i<=max;i++)
{
IMyInterface *l = (IMyInterface *)malloc(sizeof IMyInterface );
SafeArrayGetElement(array,&i, &l);
<other code>
}
インスタンスlに割り当てられたメモリを解放したいのですが、呼び出すと
free(l)
その後、クラッシュします。
私が試してみました
VariantClear ((VARIANT*)l);
と使用
SafeArrayDestroy(array)
しかし、配列内の各インスタンスに対してまだ 4 バイトがリークしています。
このメモリを解放するにはどうすればよいですか?