午前中は、打ち合わせ。
午後は出張。
まっち~に呼ばれたので、初台へ行く。
C++ で作られたプログラムがメモリリークするらしく、困っているという。
ソースを見てみると、COM を呼び出して何かやっているプログラムらしい。
最初は VARIANT の文字列を使っているので、そのメモリが解放されていないんじゃないかと思って調べてみる。
でも、ちゃんと VariantClear() を呼び出しているので、問題なさそうだ。
ちなみに BSTR 型の文字列を SysAllocString() でメモリを確保してから VARIANT の変数に入れても、VariantClear() を呼べば内部で SysFreeString() してくれるみたい。
残業。
夕飯はまっち~と吉野家へ。
さて、別の原因がないかいろいろと調べてみたら、わかった。
何のことはない、COM の初期化で CoInitialize() が何百回も呼ばれているのが原因のようだ。
今週いっぱいの作業がもう解決しちゃったなぁ。