📄 wjsthunk.pas
字号:
unit WJSTHUNK;
{$R-,S-,Q-,D-,L-}
interface
uses
Windows;
type
THandle16 = Word;
procedure QT_Thunk;cdecl;
function LoadLibrary16(LibFileName: PChar): THandle; stdcall;
procedure FreeLibrary16(LibModule: THandle); stdcall;
function GetProcAddress16(Module: HModule; ProcName: PChar): TFarProc; stdcall;
function GlobalAlloc16(Flags: Integer; Bytes: Longint): THandle16; stdcall;
function GlobalFree16(Mem: THandle16): THandle16; stdcall;
function GlobalLock16(Mem: THandle16): Pointer; stdcall;
function GlobalUnLock16(Mem: THandle16): WordBool; stdcall;
function WOWGetVDMPointer(vp, dwBytes: DWord;
fProtectedMode: Bool): Pointer; stdcall;
function WOWGetVDMPointerFix(vp, dwBytes: DWord;
fProtectedMode: Bool): Pointer; stdcall;
procedure WOWGetVDMPointerUnfix(vp: DWord); stdcall;
implementation
uses
SysUtils, Classes, Dialogs;
type
EInvalidArgument = class(EMathError);
EInvalidProc = class(Exception);
EThunkError = class(Exception);
const
kernel32 = 'kernel32.dll';
wow32 = 'wow32.dll';
procedure QT_Thunk; external kernel32 name 'QT_Thunk';
function LoadLibrary16; external kernel32 index 35;
procedure FreeLibrary16; external kernel32 index 36;
function GetProcAddress16; external kernel32 index 37;
function GlobalAlloc16; external kernel32 index 24;
function GlobalFree16; external kernel32 index 31;
function GlobalLock16; external kernel32 index 25;
function GlobalUnLock16; external kernel32 index 26;
function WOWGetVDMPointer; external wow32 name 'WOWGetVDMPointer';
function WOWGetVDMPointerFix; external wow32 name 'WOWGetVDMPointerFix';
procedure WOWGetVDMPointerUnfix; external wow32 name 'WOWGetVDMPointerUnfix';
initialization
if Win32Platform <> Ver_Platform_Win32_Windows then
raise EThunkError.Create('Thunks技术只能在Windows 9x下运行');
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -