EDIF で作ったエクステがサブアプリとの併用でクラッシュする件


既知のバグとして昔 LB に報告した( EDIF オリジナルは製作者が Andos だが LB も EDIF 派生 SDK を独自に作っていたため)サブアプリとの併用で EDIF 製のエクステが異常終了するバグについて、LB が問題点を修正してくれたとされる修正版 EDIF が GitHub にアップされている。

修正版 EDIF については GitHub で Fixed がすでにマージされており、問題点が確実に修正されたか確認して欲しいという連絡が LB から来たため急遽修正版 EDIF でエクステ動作を試して見ることになった。

参考URL(本家フォーラム):Predictably, my first ever extension won't load

筆者が EDIF を使ってエクステを作っていたのは随分昔で、ブログがまだ 「MMF2 日本語版ガイド」だった 2012 年頃まで遡る。

最初に公開したエクステはベータ版のまま終わった ControlIME( CIME ) for MMF2。これの後継は CF25 用のエクステである DIME となり、DIME は CF25 SDK で作られているため EDIF を利用していない。

CIME は Visual C++ 2010 Express を使ってビルドされており、今回のテストでは Visual C++ 2008 Express を利用する。

まず古いバージョンを試す

2012 年 5 月の公開版 Andos-Edif-874c2d5 を使って、付属テンプレートを VC++2008 Express でビルドしてみた。バグの発生を確認。ここから今回 LB が修正してくれた箇所をソースに適用してみる。

参考URL(GitHub):Merge upstream icon crash fix

修正対象ファイルは以下。

  • Inc/Edif.h
  • Lib/Edif.cpp

修正はすごくシンプルで、えこれで直りますの?という内容。よく見つけたねこれと感心しながら、この二つのソースに GitHub 見ながら手動で修正を施す。

EDIF のバージョンが古すぎてソースの記述が一致しない、がだいたいここだろうと目星付けて修正。後にテンプレをビルドして動作確認。バグ動作再現>あれ治ってない。うーい?

最新版の EDIF を試す

古いバージョンに修正を施したがバグ動作は改善されなかった。今度は修正が施された最新の EDIF をダウンロードして確認する。

まず修正されたというソース部分を肉眼で確認。スクショの行番号と全然一致しないんだけど、修正箇所は確認。それぞれちゃんと適用されている。具体的にはビルドする種類に応じてリソースからアイコンを取り除くための処理部分です。

でも古い EDIF とこれならほとんどソース内容変わらんよな。だったら手動で行った古い方の EDIF も先の修正でエラーが治っているはずなんだけど?動作が改善しないのはどうもおかしい。

最新版でビルドした結果、ガーン、最新版でもやはり直ってない。>sry LB.

LB にテスト結果を送って再度問い合わせ中。

参考URL(GitHub):windows-edif download

参考URL(GitHub):Merge upstream icon crash fix

Leave a comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です