DLLの有効範囲について、仕様確認と要望No.03557
たけとり さん 09/09/02 21:14
 
こんばんは。
開発、お疲れ様です。

さて、標記について確認とお願いができましたので、投稿します。

loaddll文の説明において、

>ロードされるのは現在の秀丸エディタについてだけなので、nexthidemaru文等で他
>の秀丸エディタに切り替わった場合は改めてloaddllしなおす必要があります。

とあります。
以下のようなマクロで確認したのですが、これは関数でも同じということでいいでし
ょうか。
また、loaddllし直す必要があるのは、next/prevtab以外の秀丸が切り替わる文・関
数を使ったときということでいいでしょうか。

#d=loaddll( "hmjre.dll");
message getloaddllfile(#d);
#nTabOrder = taborder[getcurrenttab( true, 0 )] + 1;
if( #nTabOrder >= tabtotal ) #nTabOrder = 0;
#next = gettabhandle( true, 0, #nTabOrder );
setactivehidemaru #next;
message getloaddllfile(#d);

もし、そうであれば...ですが、要望として
・nexttab/prevtab以外であっても、(マクロを終了させない限り)秀丸が切り替わ
ってもdllがロードされたままになる(状態をできる)。
ようにしていただけないでしょうか。

今、タブを切り替える(&順次処理をする)マクロを作って使っているのですが、1)
ロードされているか確認する/ロードをし直すコードが必要、2)特にロードに時間の
かかるDLLであればロードのタイミングでちょっともたつく、というようなことがあ
るからです。

新しくできた関数の方だけでも結構です。
たとえば、第2引数(を新設して、そこ)で真偽値または論理和(有効範囲)を指定
できるといったようなものはいかがでしょうか。

よろしくご検討のほどお願い申し上げます。

[ ]
RE:03557 DLLの有効範囲について、仕様確No.03567
秀丸担当 さん 09/09/03 11:32
 

>とあります。
>以下のようなマクロで確認したのですが、これは関数でも同じということでいいでし
>ょうか。
>また、loaddllし直す必要があるのは、next/prevtab以外の秀丸が切り替わる文・関
>数を使ったときということでいいでしょうか。

関数版のloaddllでも同じです。
nexttab/prevtabに限らず他の秀丸エディタに切り替わる場合はloaddllし直す必
要があります。
別の秀丸エディタではプロセスが別になっているので、原理的にDLLを共通にする
ことはできないです。
申し訳ありません。

[ ]
RE:03567 DLLの有効範囲について、仕様確No.03624
たけとり さん 09/09/04 18:11
 
>別の秀丸エディタではプロセスが別になっているので、原理的にDLLを共通にする
>ことはできないです。

了解しました。

これでちょっと思ったのですが、もしかして同じグループの別のタブだったら、プロ
セスは同じということでしょうか。
であれば、setactivehidemaruで同じグループ・別のタブのハンドルを指定した場合
でも、nexttab/prevtabのようなDllが残る挙動に...というわけにはいかないでしょ
うか。

よろしくお願いします。

[ ]
RE:03624 DLLの有効範囲について、仕様確No.03659
秀丸担当 さん 09/09/07 09:27
 

>これでちょっと思ったのですが、もしかして同じグループの別のタブだったら、プロ
>セスは同じということでしょうか。

同じグループの別のタブでも、プロセスは別になっています。
これもやはり原理的に同じなのでできないです。
申し訳ありません。

[ ]
RE:03659 DLLの有効範囲について、仕様確No.03676
たけとり さん 09/09/07 16:38
 
>同じグループの別のタブでも、プロセスは別になっています。
>これもやはり原理的に同じなのでできないです。
>申し訳ありません。

了解しました。
何とか、運用でがんばってみます。

[ ]