[▲前のスレッド]

2011/3/6 (日) 17:40:06 通りすがり  
Opera/9.80 (Windows NT 6.0; U; ja) Presto/2.7.62 Version/11.01
[5710] C/Migemo 32ビット最新版でサクラエディタが不正終了
サクラエディタの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側を直す気がないように読み取れました。

2011/3/6 (日) 20:00:13 げんた  
INCM1.23c
[5711] RE: C/Migemo 32ビット最新版でサクラエディタが不正終了
>http://cmigemo.googlecode.com/files/cmigemo-default-win32-20110227.zip
>を使うと、サクラエディタごと落ちません?


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

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

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

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

2011/3/6 (日) 22:00:02 げんた  
INCM1.23c
[5712] RE2: C/Migemo 32ビット最新版でサクラエディタが不正終了
>作者の人に問い合わせてみましょうかね.
作者に聞いてみました.

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. 使用できないので最新版を使用するよう表示する.

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

[▼次のスレッド]
INCM/CMT
Cyclamen v3.81
[ut:0.000][st:0.000]