2017年11月11日土曜日

AddRef() で落ちる 続き


variant 型に IEnumVariant をセットしようとしたときにエクセルが落ちることがある件の続き。

いろいろ試してみると、set variant = a.NewEnum() の時 queryInterface() でGUID B196B283-BAB4-101A-B69C-00AA00341D07 を要求しくることに気づいた。
これは IprovideClassInfo インターフェースというものらしく、唯一?のメソッド GetClassInfo() から ItypeInfo インターフェースを得るためのもの(っぽい)。
これをちゃんと実装するとたぶん落ちなくなるんだと思うが、かなり大変そうなのでやめとく。代わりに E_NOINTERFACE を返すようにした。
とりあえず「型が一致しません」エラーが出て、エクセルが落ちることはなくなった。

0 件のコメント:

コメントを投稿

ニューラルネットやってみてる

最近ニューラルネットやってみてる 理屈を学ぼうと思って、まずはオブジェクト的に作ってみてる (ベクトル化とかは後回しで) sigmoid, tanh, ReLU MSE, cross entorpy あたりを小規模にいじってみてます でも今 soft max の逆伝...