external exception c000001d(10分)

  • 主题发起人 主题发起人 Caicheng
  • 开始时间 开始时间
C

Caicheng

Unregistered / Unconfirmed
GUEST, unregistred user!
这是我一个常驻内存的EXE文件偶尔出错时的出错信息。这个exe文件
还调用一个dll文件。
请问这个错误是什么意思?如何debug?
积累的10分全给了。分不多,功德无量。
请各位高手提个醒
 
Dll没有释放!
 
DLL是一个键盘钩子。
其dll入口这样写的:
Procedure DLLEntryPoint(dwReason:DWord);
Var
Init:Boolean;
Begin
Case dwReason of
DLL_PROCESS_ATTACH:
Begin
MapHandle := CreateFileMapping($FFFFFFFF,Nil,PAGE_READWRITE,0,SizeOf(TCommonData),MapFileName);
Init := GetLastError <> ERROR_ALREADY_EXISTS;
If MapHandle = 0 then
Exit;
PDATA := MapViewOfFile(MapHandle,FILE_MAP_ALL_ACCESS,0,0,0);
If PDATA = Nil then Begin
CloseHandle(MapHandle);
Exit;
End;
If Init then Begin
FillChar(PDATA^,SizeOf(TCommonData),0);
End;
End;
DLL_PROCESS_DETACH:
Begin
UnmapViewOfFile(PDATA);
CloseHandle(MapHandle);
End;
DLL_THREAD_ATTACH:;
DLL_THREAD_DETACH:;
End;
End;


exports
EnableHotKeyHook,
DisableHotKeyHook;

Begin
IntoDll;
DLLProc := @DLLEntryPoint;
DLLEntryPoint(DLL_PROCESS_ATTACH);
End.

请问该如何释放dll呢?
我把这个钩子定义为系统钩子了。
 
附加功能 将问题提前
 
接受答案了.
 
后退
顶部