📄 dtestpar.dpr
字号:
program DTestPar;
{$APPTYPE CONSOLE}
{$HINTS OFF}
uses Windows, ApiHooks, PrcWorks;
function DAdd0 : LongWord; begin
DAdd0 := 0;
WriteLn('0');
end;
function DAdd1(P1 :LongWord) : LongWord; begin
DAdd1 := P1;
WriteLn(P1);
end;
function DAdd2(P1 :LongWord; P2 :LongWord) : LongWord; begin
DAdd2 := P1+P2;
WriteLn(P1,' ',P2);
end;
function DAdd3(P1 :LongWord; P2 :LongWord; P3: LongWord) : LongWord; begin
DAdd3 := P1+P2+P3;
WriteLn(P1,' ',P2,' ',P3);
end;
function DAdd4(P1 :LongWord; P2 :LongWord; P3: LongWord; P4 :LongWord) : LongWord; begin
DAdd4 := P1+P2+P3+P4;
WriteLn(P1,' ',P2,' ',P3,' ',P4);
end;
function DAdd5(P1 :LongWord; P2 :LongWord; P3: LongWord; P4 :LongWord; P5:LongWord) : LongWord; begin
DAdd5 := P1+P2+P3+P4+P5;
WriteLn(P1,' ',P2,' ',P3,' ',P4,' ',P5);
end;
function DAdd6(P1 :LongWord; P2 :LongWord; P3: LongWord; P4 :LongWord; P5:LongWord; P6:LongWord) : LongWord; begin
DAdd6 := P1+P2+P3+P4+P5+P6;
WriteLn(P1,' ',P2,' ',P3,' ',P4,' ',P5,' ',P6);
end;
function PAdd6(P1 :LongWord; P2 :LongWord; P3: LongWord; P4 :LongWord; P5:LongWord; P6:LongWord) : LongWord; pascal; begin
PAdd6 := P1+P2+P3+P4+P5+P6;
WriteLn(P1,' ',P2,' ',P3,' ',P4,' ',P5,' ',P6);
end;
function SAdd6(P1 :LongWord; P2 :LongWord; P3: LongWord; P4 :LongWord; P5:LongWord; P6:LongWord) : LongWord; stdcall; begin
SAdd6 := P1+P2+P3+P4+P5+P6;
WriteLn(P1,' ',P2,' ',P3,' ',P4,' ',P5,' ',P6);
end;
function CAdd6(P1 :LongWord; P2 :LongWord; P3: LongWord; P4 :LongWord; P5:LongWord; P6:LongWord) : LongWord; cdecl; begin
CAdd6 := P1+P2+P3+P4+P5+P6;
WriteLn(P1,' ',P2,' ',P3,' ',P4,' ',P5,' ',P6);
end;
exports
DAdd0, DAdd1, DAdd2, DAdd3, DAdd4, DAdd5, DAdd6, PAdd6, SAdd6, CAdd6;
var
PID : LongWord;
CLAddress : LongWord;
ParArray : Array[0..5] of LongWord = (1,2,3,4,5,6);
begin
DAdd0();
DAdd1(1);
DAdd2(1,2);
DAdd3(1,2,3);
DAdd4(1,2,3,4);
DAdd5(1,2,3,4,5);
DAdd6(1,2,3,4,5,6);
PAdd6(1,2,3,4,5,6);
SAdd6(1,2,3,4,5,6);
CAdd6(1,2,3,4,5,6);
PID := GetCurrentProcessId;
CLAddress := LoadAndCall(nil, 'DTestPar.exe', PID, INFINITE, 0, 'DAdd0', 0 or LAC_DELPHI, @ParArray);
CLAddress := LoadAndCall(nil, 'DTestPar.exe', PID, INFINITE, 0, 'DAdd1', 1 or LAC_DELPHI, @ParArray);
CLAddress := LoadAndCall(nil, 'DTestPar.exe', PID, INFINITE, 0, 'DAdd2', 2 or LAC_DELPHI, @ParArray);
CLAddress := LoadAndCall(nil, 'DTestPar.exe', PID, INFINITE, 0, 'DAdd3', 3 or LAC_DELPHI, @ParArray);
CLAddress := LoadAndCall(nil, 'DTestPar.exe', PID, INFINITE, 0, 'DAdd4', 4 or LAC_DELPHI, @ParArray);
CLAddress := LoadAndCall(nil, 'DTestPar.exe', PID, INFINITE, 0, 'DAdd5', 5 or LAC_DELPHI, @ParArray);
CLAddress := LoadAndCall(nil, 'DTestPar.exe', PID, INFINITE, 0, 'DAdd6', 6 or LAC_DELPHI, @ParArray);
CLAddress := LoadAndCall(nil, 'DTestPar.exe', PID, INFINITE, 0, 'PAdd6', 6 or LAC_PASCAL, @ParArray);
CLAddress := LoadAndCall(nil, 'DTestPar.exe', PID, INFINITE, 0, 'SAdd6', 6, @ParArray);
CLAddress := LoadAndCall(nil, 'DTestPar.exe', PID, INFINITE, 0, 'CAdd6', 6, @ParArray);
PID := ProcessName2PID('CTestPar.exe');
CLAddress := LoadAndCall(nil, 'CTestPar.exe', PID, INFINITE, 0, 'FAdd0', 0 or LAC_FASTCALL, @ParArray);
CLAddress := LoadAndCall(nil, 'CTestPar.exe', PID, INFINITE, 0, 'FAdd1', 1 or LAC_FASTCALL, @ParArray);
CLAddress := LoadAndCall(nil, 'CTestPar.exe', PID, INFINITE, 0, 'FAdd2', 2 or LAC_FASTCALL, @ParArray);
CLAddress := LoadAndCall(nil, 'CTestPar.exe', PID, INFINITE, 0, 'FAdd3', 3 or LAC_FASTCALL, @ParArray);
CLAddress := LoadAndCall(nil, 'CTestPar.exe', PID, INFINITE, 0, 'FAdd4', 4 or LAC_FASTCALL, @ParArray);
CLAddress := LoadAndCall(nil, 'CTestPar.exe', PID, INFINITE, 0, 'FAdd5', 5 or LAC_FASTCALL, @ParArray);
CLAddress := LoadAndCall(nil, 'CTestPar.exe', PID, INFINITE, 0, 'FAdd6', 6 or LAC_FASTCALL, @ParArray);
CLAddress := LoadAndCall(nil, 'CTestPar.exe', PID, INFINITE, 0, 'SAdd6', 6, @ParArray);
CLAddress := LoadAndCall(nil, 'CTestPar.exe', PID, INFINITE, 0, 'CAdd6', 6, @ParArray);
ReadLn;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -