📄 ctestpar.cpp
字号:
#define WIN32_LEAN_AND_MEAN
//#define UNICODE
#ifdef UNICODE
#define _UNICODE
#endif
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <tchar.h>
//#define AH_STATIC_LINKING
#include <ApiHooks.h>
//#define PW_STATIC_LINKING
#include <PrcWorks.h>
#define dexp extern "C" __declspec(dllexport)
dexp DWORD __fastcall FAdd0(VOID) {
_tprintf(_T("%u\n"), 0);
return(0);
}
dexp DWORD __fastcall FAdd1(DWORD P1) {
_tprintf(_T("%u\n"), P1);
return(P1);
}
dexp DWORD __fastcall FAdd2(DWORD P1, DWORD P2) {
_tprintf(_T("%u %u\n"), P1, P2);
return(P1+P2);
}
dexp DWORD __fastcall FAdd3(DWORD P1, DWORD P2, DWORD P3) {
_tprintf(_T("%u %u %u\n"), P1, P2, P3);
return(P1+P2+P3);
}
dexp DWORD __fastcall FAdd4(DWORD P1, DWORD P2, DWORD P3, DWORD P4) {
_tprintf(_T("%u %u %u %u\n"), P1, P2, P3, P4);
return(P1+P2+P3+P4);
}
dexp DWORD __fastcall FAdd5(DWORD P1, DWORD P2, DWORD P3, DWORD P4, DWORD P5) {
_tprintf(_T("%u %u %u %u %u\n"), P1, P2, P3, P4, P5);
return(P1+P2+P3+P4+P5);
}
dexp DWORD __fastcall FAdd6(DWORD P1, DWORD P2, DWORD P3, DWORD P4, DWORD P5, DWORD P6) {
_tprintf(_T("%u %u %u %u %u %u\n"), P1, P2, P3, P4, P5, P6);
return(P1+P2+P3+P4+P5+P6);
}
dexp DWORD __stdcall SAdd6(DWORD P1, DWORD P2, DWORD P3, DWORD P4, DWORD P5, DWORD P6) {
_tprintf(_T("%u %u %u %u %u %u\n"), P1, P2, P3, P4, P5, P6);
return(P1+P2+P3+P4+P5+P6);
}
dexp DWORD __cdecl CAdd6(DWORD P1, DWORD P2, DWORD P3, DWORD P4, DWORD P5, DWORD P6) {
_tprintf(_T("%u %u %u %u %u %u\n"), P1, P2, P3, P4, P5, P6);
return(P1+P2+P3+P4+P5+P6);
}
VOID _tmain(int argc, TCHAR** argv) {
FAdd0();
FAdd1(1);
FAdd2(1,2);
FAdd3(1,2,3);
FAdd4(1,2,3,4);
FAdd5(1,2,3,4,5);
FAdd6(1,2,3,4,5,6);
SAdd6(1,2,3,4,5,6);
CAdd6(1,2,3,4,5,6);
DWORD ParArray[6] = {1,2,3,4,5,6};
#define DLLName _T("CTestPar.exe")
DWORD PID = GetCurrentProcessId();
DWORD
// CLAddress = LoadAndCall(NULL, DLLName, PID, INFINITE, 0, (LPTSTR)1, 0 | LAC_FASTCALL, ParArray);
CLAddress = LoadAndCall(NULL, DLLName, PID, INFINITE, 0, _T("FAdd0"), 0 | LAC_FASTCALL, ParArray);
CLAddress = LoadAndCall(NULL, DLLName, PID, INFINITE, 0, _T("FAdd1"), 1 | LAC_FASTCALL, ParArray);
CLAddress = LoadAndCall(NULL, DLLName, PID, INFINITE, 0, _T("FAdd2"), 2 | LAC_FASTCALL, ParArray);
CLAddress = LoadAndCall(NULL, DLLName, PID, INFINITE, 0, _T("FAdd3"), 3 | LAC_FASTCALL, ParArray);
CLAddress = LoadAndCall(NULL, DLLName, PID, INFINITE, 0, _T("FAdd4"), 4 | LAC_FASTCALL, ParArray);
CLAddress = LoadAndCall(NULL, DLLName, PID, INFINITE, 0, _T("FAdd5"), 5 | LAC_FASTCALL, ParArray);
CLAddress = LoadAndCall(NULL, DLLName, PID, INFINITE, 0, _T("FAdd6"), 6 | LAC_FASTCALL, ParArray);
CLAddress = LoadAndCall(NULL, DLLName, PID, INFINITE, 0, _T("SAdd6"), 6, ParArray);
CLAddress = LoadAndCall(NULL, DLLName, PID, INFINITE, 0, _T("CAdd6"), 6, ParArray);
PID = ProcessName2PID(_T("DTestPar.exe"));
#undef DLLName
#define DLLName _T("DTestPar.exe")
CLAddress = LoadAndCall(NULL, DLLName, PID, INFINITE, 0, _T("DAdd0"), 0 | LAC_DELPHI, ParArray);
CLAddress = LoadAndCall(NULL, DLLName, PID, INFINITE, 0, _T("DAdd1"), 1 | LAC_DELPHI, ParArray);
CLAddress = LoadAndCall(NULL, DLLName, PID, INFINITE, 0, _T("DAdd2"), 2 | LAC_DELPHI, ParArray);
CLAddress = LoadAndCall(NULL, DLLName, PID, INFINITE, 0, _T("DAdd3"), 3 | LAC_DELPHI, ParArray);
CLAddress = LoadAndCall(NULL, DLLName, PID, INFINITE, 0, _T("DAdd4"), 4 | LAC_DELPHI, ParArray);
CLAddress = LoadAndCall(NULL, DLLName, PID, INFINITE, 0, _T("DAdd5"), 5 | LAC_DELPHI, ParArray);
CLAddress = LoadAndCall(NULL, DLLName, PID, INFINITE, 0, _T("DAdd6"), 6 | LAC_DELPHI, ParArray);
CLAddress = LoadAndCall(NULL, DLLName, PID, INFINITE, 0, _T("PAdd6"), 6 | LAC_PASCAL, ParArray);
CLAddress = LoadAndCall(NULL, DLLName, PID, INFINITE, 0, _T("SAdd6"), 6, ParArray);
CLAddress = LoadAndCall(NULL, DLLName, PID, INFINITE, 0, _T("CAdd6"), 6, ParArray);
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -