「loaddll」の仕様についてNo.08316
TAKA さん 01/04/09 19:57
 
TAKA です。

マクロ作者会議室(「1946」以降のスレッド)で話題になったので
すが、秀丸担当さんからコメントがなかったようですので、こちら
で再度質問させてもらいます。
#発言量が多すぎて、埋もれてしまったようです。

マクロのヘルプには

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

>freedllしないままマクロを終了すると、ロードしたdllはそのまま
>ロードされたままになります。

と記載されていますが、実際にはどのように管理されているのでし
ょうか?
秀丸はウィンドウ毎に1つのプロセスとして動作しているので、
loaddllした場合は、同じウィンドウ内で、freedllをする必要があ
                  ^^^^^^^^^^^^^^^^^^
ると思います、しかし、このことを意識している人は少ないと思い
ますし、loaddllとfreedllの間にマクロを中断してdllがメモリ上
に残ったままになることもあると思います。
私として、秀丸のプロセスが終了する時点でロードされたdllがあ
る場合は、秀丸が開放を行って欲しいのですが。
(「その他→動作環境→ウィンドウ→秀丸の常駐」で「秀丸の瞬間
起動」がONの場合は、リサイクルする数で管理しきれなくなって、
そこからこぼれた秀丸はプロセス終了となる)

1つのプロセス内で1つのdllを管理しているということは、同じ
ウィンドウを行き来するような場合(A→B→A→B→A)は、その都
度loaddllする必要はなく、最初の1回だけloaddllしておけば良い
と思いますが、あっているでしょうか?


最後に整理しておきます。
・秀丸プロセス終了時にloaddllしたままのものは、開放してくれ
 ている?
・同じウィンドウ(プロセス)であれば、loaddllし直す必要はな
 い?

[ ]
RE:08316 「loaddll」の仕様についてNo.08351
秀丸担当 さん 01/04/11 18:29
 
>・秀丸プロセス終了時にloaddllしたままのものは、開放してくれ
> ている?

プロセス終了時にも何もしていません。
しかしWindowsが、プロセス終了と同時に開放していると思います。

>・同じウィンドウ(プロセス)であれば、loaddllし直す必要はな
> い?

はい。そういうことになります。

[ ]
RE:08351 「loaddll」の仕様についてNo.08355
TAKA さん 01/04/11 19:07
 
TAKA です。

>>・秀丸プロセス終了時にloaddllしたままのものは、開放してくれ
>> ている?
>
>プロセス終了時にも何もしていません。

がーん。

>しかしWindowsが、プロセス終了と同時に開放していると思います。

それなら、安心です。


>>・同じウィンドウ(プロセス)であれば、loaddllし直す必要はな
>> い?
>
>はい。そういうことになります。

なるほど。


これで、loaddllの仕様がはっきりと分かりましたので、安心して
プログラム出来そうです。ありがとございました。

[ ]