-
Автор темы
- #1
Я новенький в c++ не понимаю как исправить эту ошибку (E0167 аргумент типа "const char *" несовместим с параметром типа "char *" и LPSTR)
пытался сделать экстернал sv_cheats bypass для старой ксс
заранее спасибо.
пытался сделать экстернал sv_cheats bypass для старой ксс
заранее спасибо.
C++:
#include <iostream>
#include <Windows.h>
#include <TlHelp32.h>
using namespace std;
DWORD GetModuleBase(LPSTR lpModuleName, DWORD dwProcessId)
{
MODULEENTRY32 lpModuleEntry = { 0 };
HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessId);
if (!hSnapShot) return NULL;
lpModuleEntry.dwSize = sizeof(lpModuleEntry);
BOOL bModule = Module32First(hSnapShot, &lpModuleEntry);
while (bModule)
{
if (!strcmp(lpModuleEntry.szModule, lpModuleName))
{
CloseHandle(hSnapShot);
return (DWORD)lpModuleEntry.modBaseAddr;
}
bModule = Module32Next(hSnapShot, &lpModuleEntry);
}
CloseHandle(hSnapShot);
return NULL;
}
DWORD GetProcessByName(char* process_name) // тут была ошибка с hl2.exe я ее решил, но что же делать с engine.dll?
{
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
if (hSnapshot == INVALID_HANDLE_VALUE) return false;
PROCESSENTRY32 pe = { 0 };
pe.dwSize = sizeof(PROCESSENTRY32);
if (Process32First(hSnapshot, &pe))
{
while (Process32Next(hSnapshot, &pe))
{
if (!lstrcmpi(pe.szExeFile, process_name))
{
DWORD pID = pe.th32ProcessID;
CloseHandle(hSnapshot);
return pID;
}
}
}
return FALSE;
}
int main()
{
int Value = 1;
DWORD pID = GetProcessByName("hl2.exe"); // тут ошибка const char*
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, 0, pID);
DWORD dwEngine = GetModuleBase("engine.dll", pID); // а тут LPSTR
}
void SetColor(int ForgC)
{
WORD wColor;
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO csbi;
if (GetConsoleScreenBufferInfo(hStdOut, &csbi))
{
wColor = (csbi.wAttributes & 0xF0) + (ForgC & 0x0F);
SetConsoleTextAttribute(hStdOut, wColor);
}
return;
}
Последнее редактирование: