怎么才能让DLL不被指定的程序加载?我找了段VC的,谁告诉我Delphi怎么实现!(100分)

  • 主题发起人 主题发起人 satanmonkey
  • 开始时间 开始时间
S

satanmonkey

Unregistered / Unconfirmed
GUEST, unregistred user!
VC代码如下
BOOL WINAPI DllMain(DWORD dwReason, LPVOID lpReserved)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
// Don't attach to Windows Explorer
TCHAR pszLoader[MAX_PATH];
GetModuleFileName(NULL, pszLoader, MAX_PATH);
CString sLoader = pszLoader;
sLoader.MakeLower();
if (sLoader.Find(_T("explorer.exe")) >= 0)
return FALSE;
}
}

vc里只要让dllmain的返回值为false就可以了,delphi里要对dllproc怎么弄?

 
DELPHI可以指定入口函数替换原来的入口函数吧,自己看看?你也写一个这样的过程就可以搞定.
 
替代的函数和vc的不一样的,vc的返回false就ok了,delphi的要根据DLLProc的参数来判断,弄了很久也没搞懂怎么让他不加载.
 
delphi的入口函数大概是这样的.没返回值,我已经无招了
Procedure DLLMain(dwReason:Dword); far;
begin
Case dwReason of
DLL_PROCESS_ATTACH :
begin

End;
DLL_PROCESS_DETACH :
begin

end;
DLL_THREAD_ATTACH:
begin

end;
DLL_THREAD_DETACH :
beigin

end;
end;
 
设置ExitCode =1就可以了。
继续研究中.....
 
果然强,分全给你.
 
后退
顶部