//删除自己的代码 
procedure DeleteSelf;
var
  hModule: THandle;
  buff: array[0..255] of Char;
  hKernel32: THandle;
  pExitProcess, pDeleteFileA, pUnmapViewOfFile: Pointer;
begin
  hModule := GetModuleHandle(nil);
  GetModuleFileName(hModule, buff, sizeof(buff));
  CloseHandle(THandle(4)); //?
  hKernel32 := GetModuleHandle('KERNEL32');
  pExitProcess := GetProcAddress(hKernel32, 'ExitProcess'); 
  pDeleteFileA := GetProcAddress(hKernel32, 'DeleteFileA');
  pUnmapViewOfFile := GetProcAddress(hKernel32, 'UnmapViewOfFile'); //?
  //以下???
  asm 
                LEA EAX, buff
                PUSH 0
                PUSH 0
                PUSH EAX
                PUSH pExitProcess
                PUSH hModule
                PUSH pDeleteFileA
                PUSH pUnmapViewOfFile
                RET
  end;end;
此段代码是我从这里拷贝的,使用以后发现只能在NT系统下面起作用,98下面无效,为什么呢?