hidemaruapi.dllの使い方No.00997
ひろ坊 さん 17/02/07 13:50
 
いつもお世話になっております。
マクロで大きな間違いをしていたらすみません。下記のようなマクロを、秀丸メール
から実行すると、初回の場合には必ずhidemaruapi.dllをロードできずに失敗します。
しかし、一度メニューからパブリッシャーを実行すると、次からは正しくロードして
動いてくれます。秀丸メールを終了してしまうと、またロードできず、メニューから
一度パブリッシャーを実行する必要があります。エディタからは問題になったことが
ありません。
宜しくお願いします。

秀丸メール32bit V6.63
秀丸パブリッシャー64bit V4.21

loaddll "hidemaruapi.dll";
if( !result ) {
    message "hidemaruapi.dllのロードに失敗しました。";
    endmacro;
}
#n = dllfunc("PrintDialog", hidemaruhandle(0), "メール印刷");
freedll;

[ ]
RE:00997 hidemaruapi.dllの使い方No.01000
秀まるお2 さん 17/02/07 17:13
 
 たぶんですが、loaddllするhidemaruapi.dllをフルパス指定すれば直ると思い
ます。

 hidemaruapi.dllは秀丸エディタ用のフォルダにインストールされてると思う
ので、秀丸エディタからは"hidemaruapi.dll"のみでロードできますが、秀丸
メールからはロードできないのだと思います。一度印刷すれば大丈夫になるのは、
印刷することでhidemaruapi.dllがロードされる(解放されない)のでってこと
だと思います。


----------------------------------
 hidemaruapi.dllのロード方法は、秀丸パブリッシャーのヘルプにありました。

openreg "CLASSESROOT", "CLSID\\{3790E08E-DA26-41E2-B6B7-A2C2DED41C2F}\\
InprocServer32";
if( ! result ) {
    message "秀丸パブリッシャーがインストールされていません。";
    endmacro;
}
$path = getregstr("");
closereg;
loaddll $path;
if( !result ) {
    message "hidemaruapi.dllのロードに失敗しました。";
    endmacro;
}

 こんな具合でいいと思います。
 (32bit版でも64bit版でも一応こちらではうまくロードできました)

[ ]
RE:01000 hidemaruapi.dllの使い方No.01001
ひろ坊 さん 17/02/07 18:38
 
教えていていただいた方法で問題なく実行できました。
ありがとうございます。

$path = "C:\\Program Files\\Hidemaru\\hidemaruapi.dll";
でも実行できました。ちなみに
$path = hidemarudir + "\\hidemaruapi.dll";
だとエラーになって、秀丸エディタがインストールされている環境でも
hidemarudirが"c:\program files (x86)\hidemarumail"になるようでした。

またご確認いただけたらと思います。
ありがとうございました。

[ ]
RE:01001 hidemaruapi.dllの使い方No.01005
秀まるお2 さん 17/02/08 10:57
 
 hidemarudirの動作がたしかにおかしいようです。

 hidemarudirが「x86」の方を指してしまうのは、すみませんがWindowsのやや
こしい仕組みのせいでして、たぶん直せないと思います。

 32bit版の秀丸メールから64bit版の秀丸エディタ用のフォルダを参照しようと
して、

 C:\Program files\Hidemaru\hidemaru.exe

 みたいにアクセスしようとすると、それが勝手に

 C:\Program files (x86)\Hidemaru\hidemaru.exe

 と解釈される、みたいなへんてこな仕組みがWindowsにありまして、それのせ
いで、hidemarudirが誤動作してしまってるんだと思います。

 以前、インストーラーでショートカットのリンク先を書き換える処理がどうし
てもうまく動かずに困ったことがありました。それと同じ問題だと思います。

 とりあえずヘルプに追記だけさせていただきます。

[ ]