◀ANSI版開発トップへ
  • 5710 C/Migemo 32ビット最新版でサクラエディタが不正終了
    • 5711 RE: C/Migemo 32ビット最新版でサクラエディタが不正終了
      • 5712 RE2: C/Migemo 32ビット最新版でサクラエディタが不正終了
  • [5710] C/Migemo 32ビット最新版でサクラエディタが不正終了 通りすがり 2011年03月06日 17:40

    サクラエディタの1.6.6.0で
    C/Migemo の32ビット最新版(20110227版)
    http://www.kaoriya.net/software/cmigemo/win32dll
    http://cmigemo.googlecode.com/files/cmigemo-default-win32-20110227.zip
    を使うと、サクラエディタごと落ちません?

    http://www.kaoriya.net/blog/201103/20110306_2
    をみるかぎりでは、C/Migemoの作者の方には
    DLL側を直す気がないように読み取れました。
    • [5711] RE: C/Migemo 32ビット最新版でサクラエディタが不正終了 げんた 2011年03月06日 20:00

      >http://cmigemo.googlecode.com/files/cmigemo-default-win32-20110227.zip
      >を使うと、サクラエディタごと落ちません?

      呼び出し規約が
      v1.2まで: cdecl
      v1.3~ : stdcall

      ですから,たぶん落ちますね.
      サクラエディタでは呼び出し規約が"__cdecl"と明示されていました.

      履歴を見るとソースが変更されたのは2007年ですが,バイナリが出たのはつい先日なんですね...
      v1.3に合わせるのは簡単ですが,単純に合わせると,こんどは古い方で落ちるようになります.

      作者の人に問い合わせてみましょうかね.
      • [5712] RE2: C/Migemo 32ビット最新版でサクラエディタが不正終了 げんた 2011年03月06日 22:00

        >作者の人に問い合わせてみましょうかね.
        作者に聞いてみました.

        v1.2と1.3の識別はリソース内の番号を見るしかないようです.
        v1.2は"2002.6.22.17"
        v1.3(20110227)は"1.3.0.175"
        です.

        現在ホームページより入手できるv1.2より古い物が公開されていたかどうかはわからないとのことでした.

        なので,
        1. DLLロード前にリソース内のVERSIONINFOを読み出す.
        2. 1桁目が2002だったら(念のため1900~2002だったらにしておくか?)v1.2と判断して
        3. 使用できないので最新版を使用するよう表示する.

        とする必要があると思います.