资源消耗处理。
请帮我看下这段代码,如何处理资源消耗问题。时间一长画面就会晃动,资源消耗尤其严重。
hook.dll
library hook;
uses windows;
var nextglBegin: procedure(mode: cardinal); stdcall;
nextglEnable: procedure(mode: cardinal); stdcall;
nextglDisable: procedure(mode: cardinal); stdcall;
nextglTexEnvi: procedure(a,b,c: cardinal); stdcall;
procedure myglBegin(mode: cardinal); stdcall;
var keystate: tKeyboardstate;
begin
getkeyboardstate(keystate);
if keystate[VK_NUMPAD1] > 0 then
if (mode = $5) or (mode = $6) then
nextglDisable($0B71) else
nextglEnable($0B71);
if keystate[VK_NUMPAD2] > 0 then
if (mode = $5) or (mode = $6) then
nextglTexEnvi($2300, $2200, $2101);
nextglBegin(mode);
end;
procedure schleife;
begin
while getmodulehandle('opengl32.dll') = 0 do sleep(1000);
sleep(2000);
@nextglDisable := getprocaddress(getmodulehandle('opengl32.dll'),'glDisable');//pointer($6955d800);
@nextglEnable := getprocaddress(getmodulehandle('opengl32.dll'),'glEnable');//pointer($6955f030);
@nextglTexEnvi := getprocaddress(getmodulehandle('opengl32.dll'),'glTexEnvi');//pointer($6955f030);
asm
mov eax, [$7FFDE7CC]
mov [nextglBegin], eax
mov eax, offset myglBegin
mov [$7FFDE7CC], eax
end;
end;
var tid: cardinal;
begin
messagebox(0,加载成功!','加载成功~~',0);
createthread(nil,0,@schleife,nil,0,tid);
end.