|
秀丸担当さん、皆さん今日は、Iranoan です。
loaddll でロードした DLL および、DLL の作成法について質問です。
loaddll $dll;
のあと freedll をしないでウィンドウを閉じたとき、どういう動きをするの
でしょうか?
(1) $dll はどうなるのでしょう?
ちゃんと解放されるのか、それともメモリに残ったまま?
(2) DLL 内部で取得したデータの扱いは?
1.仮に $dll 自体は解放されるとして、
BOOL APIENTRY DllMain(HINSTANCE hInstance, DWORD dwReason,
LPVOID pParam
){
:
:
switch (dwReason) {
case DLL_PROCESS_ATTACH:
:
:
case DLL_PROCESS_DETACH:
:
:
}
というソースで、freedll したときと同様、DLL_PROCESS_DETACH の部
分の処理は実行されるのか?
2.$dll 自体が解放されないなら、どうすれば確実にメモリーを解放する
DLL にできるのか?
デバッガが使えないので、MessageBox 関数を使って試した限りでは、
freedll と実行したときと同じ処理をしていると思うのですが、念の為お聞き
します。
|
|