|
お世話になっております。
マクロからDLLを実行する場合についての質問です。
##dllID = loaddll( "foo.dll" );
を実行したあと、freedll を実行しないでマクロを終了し、
後に実行するマクロから解放する手段は存在しない感じでしょうか。
dll内でスレッドを回して、マクロ終了後も継続、
後の任意のタイミングで終了するようなのを作っています。
…そんな使い方するなよ、と言われると苦しいですが;
今のところ、
(1) マクロ実行時、loaddll する。DllMain実行される。
(2) スレッドが走りだし、dllfunc も実行可能。
(3) freedllせずにマクロ終了。スレッドは継続している。
(4) 次にマクロ実行時、同じファイルを loaddll。DllMain関数は実行されていない。
(5) この時のIDで、先ほどのスレッドにアクセス可能。
(6) freedllを実行しても何も起きない。
こんな感じです。
動作を見ると、やはりまずい使い方なのかと思ったりもしますが;
一応、目的の動作は得られるのですが、一旦秀丸を終了しないと
dllを上書き出来ないのが地味に不便だったりする程度です。
|
|