关于dll加载失败的问题!
小弟写了一个dll 可是加载的时候老是加载不上 代码:
str:=GetCurrentDir();
modlueHandle:=LoadLibrary(PChar(str+'Hook.dll'));//modlueHandle总是0 也不知道为什么
@InstallHook:=GetProcAddress(modlueHandle,'HookInstall');
dll中:
uses//中间省略若干变量定义和无用的方法
Sharemem,
SysUtils,
Classes,
Windows;procedure MyDllHandle(Reason:integer);
var
fhandle:THandle;
begin
case Reason of
DLL_PROCESS_ATTACH:
begin
fhandle:=CreateFileMapping($ffffffff,nil,PAGE_READWRITE,0,$ffff,'Mydll');
if fhandle=0 then
begin
if GetLastError=ERROR_ALREADY_EXISTS then
begin
fhandle:=OpenFileMapping(FILE_MAP_ALL_ACCESS,False,'Mydll');
if fhandle=0 then
begin
Exit;
end;
end
else
begin
Exit;
end;
DllData:=MapViewOfFile(fhandle,FILE_MAP_ALL_ACCESS,0,0,0);
if DllData=nil then
begin
CloseHandle(fhandle);
end;
end;
end;
DLL_PROCESS_DETACH:
begin
if Assigned(DllData) then
begin
UnmapViewOfFile(DllData);
DllData:=nil;
end;
end;
end;
end;
exports
HookInstall, UnHook, HookPro;
begin
DllProc:=@MyDllHandle;
MyDllHandle(DLL_PROCESS_ATTACH);
end.
请问 为什么总是加载不了这个dll呀?
我modlueHandle:=LoadLibrary('Hook.dll');
modlueHandle:=LoadLibrary(PChar('Hook.dll'));都试过 就是不行