- 4,720
- 6,376
Нет не будетСмотря в какую сторону хочешь развиваться. Но я бы вместо плюсов сразу начал с C, потом будет проще понять как всё устроено в плюсовом ооп
Нет не будетСмотря в какую сторону хочешь развиваться. Но я бы вместо плюсов сразу начал с C, потом будет проще понять как всё устроено в плюсовом ооп
if (SF->getGame()->isKeyPressed(VK_F1))
PEDSELF->GetVehicle()->GetHandlingData()->SetEngineAcceleration(80.f);
Ошибка (активно) E0167 аргумент типа "const char *" несовместим с параметром типа "PCHAR"
#include <windows.h>
#include "main.h"
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_KEYUP:
{
switch (wParam)
{
case VK_F10:
{
AddMessageJumpQ("Hello World: 2", 500, NULL, false);
}
case VK_F11:
{
AddMessageJumpQ("Hello World: 2", 500, NULL, false);
}
}
}
}
return CallWindowProcA(WNDPROC(pDLLProject.PrevWndFunc), hwnd, uMsg, wParam, lParam);
}
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
switch (fdwReason)
{
case DLL_PROCESS_ATTACH:
{
pDLLProject.PrevWndFunc = SetWindowLongA(FindWindowA(NULL, "GTA:SA:MP"), GWL_WNDPROC, LONG(WindowProc));
}
}
return TRUE;
}
#define FUNC_CMessages__AddMessageJumpQ 0x69F1E0
void AddMessageJumpQ(PCHAR text, UINT time, USHORT flag, bool bPreviousBrief) // Функция показа сообщения на экране.
{
((void(__cdecl*)(PCHAR, UINT, USHORT, bool))FUNC_CMessages__AddMessageJumpQ)(text, time, flag, bPreviousBrief);
}
struct stDLLProject
{
LONG PrevWndFunc;
} pDLLProject;
у тебя функция принимает изменяемый аргумент, а ты передаешь не изменяемый.1.Ваш вопрос:
Код:Ошибка (активно) E0167 аргумент типа "const char *" несовместим с параметром типа "PCHAR"
main.cpp
Код:#include <windows.h> #include "main.h" LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_KEYUP: { switch (wParam) { case VK_F10: { AddMessageJumpQ("Hello World: 2", 500, NULL, false); } case VK_F11: { AddMessageJumpQ("Hello World: 2", 500, NULL, false); } } } } return CallWindowProcA(WNDPROC(pDLLProject.PrevWndFunc), hwnd, uMsg, wParam, lParam); } BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { switch (fdwReason) { case DLL_PROCESS_ATTACH: { pDLLProject.PrevWndFunc = SetWindowLongA(FindWindowA(NULL, "GTA:SA:MP"), GWL_WNDPROC, LONG(WindowProc)); } } return TRUE; }
main.h
Код:#define FUNC_CMessages__AddMessageJumpQ 0x69F1E0 void AddMessageJumpQ(PCHAR text, UINT time, USHORT flag, bool bPreviousBrief) // Функция показа сообщения на экране. { ((void(__cdecl*)(PCHAR, UINT, USHORT, bool))FUNC_CMessages__AddMessageJumpQ)(text, time, flag, bPreviousBrief); } struct stDLLProject { LONG PrevWndFunc; } pDLLProject;
void AddMessageJumpQ(const PCHAR text, UINT time, USHORT flag, bool bPreviousBrief) // Функция показа сообщения на экране.
{
((void(__cdecl*)(const PCHAR, UINT, USHORT, bool))FUNC_CMessages__AddMessageJumpQ)(text, time, flag, bPreviousBrief);
}
у тебя функция принимает изменяемый аргумент, а ты передаешь не изменяемый.
Делай так:
Код:void AddMessageJumpQ(const PCHAR text, UINT time, USHORT flag, bool bPreviousBrief) // Функция показа сообщения на экране. { ((void(__cdecl*)(const PCHAR, UINT, USHORT, bool))FUNC_CMessages__AddMessageJumpQ)(text, time, flag, bPreviousBrief); }
Ошибка (активно) E0167 аргумент типа "const char *" несовместим с параметром типа "PCHAR"
Ошибка C2664 "void AddMessageJumpQ(const PCHAR,UINT,USHORT,bool)": невозможно преобразовать аргумент 1 из "const char [15]" в "const PCHAR"
у тебя PCHAR это точно char*? если нет, то замениКод:Ошибка (активно) E0167 аргумент типа "const char *" несовместим с параметром типа "PCHAR" Ошибка C2664 "void AddMessageJumpQ(const PCHAR,UINT,USHORT,bool)": невозможно преобразовать аргумент 1 из "const char [15]" в "const PCHAR"
Как?) Я просто еще новичек в этом ремеслеу тебя PCHAR это точно char*? если нет, то замени
Просто замени PCHAR на char * в своем кодеКак?) Я просто еще новичек в этом ремесле
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
int n = 0;
cout << "Введите последнее число факториала: ";
cin >> n;
for (int i = 1; i < n; i++)
{
n *= i;
}
cout << n << endl;
system("pause");
return 0;
}
мужики в чем проблема
условие: Дано целое число N (> 0). Найти произведение N! = 1 • 2 • ... • N.
Код:#include <iostream> using namespace std; int main() { setlocale(LC_ALL, "rus"); int n = 0; cout << "Введите последнее число факториала: "; cin >> n; for (int i = 1; i < n; i++) { n *= i; } cout << n << endl; system("pause"); return 0; }
в таком случае в консоль не выводится ничего, если в for написать int i = 0, выведется 0.
#include <iostream>
int main()
{
uint64_t n, fact = 1;
std::cin >> n;
for (uint64_t i = 1; i <= n; i++)
fact *= i;
std::cout << fact;
return 0;
}
Потому что факториал 0 = 1. А у тебя в коде он равен 0мужики в чем проблема
условие: Дано целое число N (> 0). Найти произведение N! = 1 • 2 • ... • N.
Код:#include <iostream> using namespace std; int main() { setlocale(LC_ALL, "rus"); int n = 0; cout << "Введите последнее число факториала: "; cin >> n; for (int i = 1; i < n; i++) { n *= i; } cout << n << endl; system("pause"); return 0; }
в таком случае в консоль не выводится ничего, если в for написать int i = 0, выведется 0.
DW pools_cars = *(DW*)0xB74494; //
int carid = SF->getSAMP()->getPlayers()->pLocalPlayer->inCarData.sVehicleID;
int veh_handle = SF->getSAMP()->getVehicles()->GetCarHandleFromSAMPCarID(carid);
DW car = *(DW*)(pools_cars + (veh_handle * 0xA18));
////////////////////////////////////////////////////////////////////////////////////
DW pools_cars = *(DW*)(*(DW*)0xB74494);
int carid = SF->getSAMP()->getPlayers()->pLocalPlayer->inCarData.sVehicleID;
int veh_handle = SF->getSAMP()->getVehicles()->GetCarHandleFromSAMPCarID(carid);
DW car = *(DW*)(pools_cars + (veh_handle * 0xA18));
////////////////////////////////////////////////////////////////////////////////////
DW pools_cars = 0xC502AA0;
int carid = SF->getSAMP()->getPlayers()->pLocalPlayer->inCarData.sVehicleID;
int veh_handle = SF->getSAMP()->getVehicles()->GetCarHandleFromSAMPCarID(carid);
DW car = *(DW*)(pools_cars + (veh_handle * 0xA18));
Ты хочешь машину в которой ты сидишь получить?@DarkP1xel , помоги пж, я хочу получить CVehicle через handle машины, (пока-что только с SFAPI) я пробовал:
ты когда-то сказал что хендл это типо игрового id
CVehicle
Каждый транспорт как объект, равняется 2584 (0xA18) байтам и начинается с 0xC502AA0.
0xB74494 - Содержит указатель. Этот указатель:
- +0 = Содержит указатель на первый элемент в пуле CVehicle
- +4 = Содержит указатель на карту байтов показывающую какие элементы сейчас используются в пуле CVehicle
- +8 = [dword] максимальное кол-во элементов в пуле CVehicle
- +12 = [dword] текущее кол-во элементов в пуле CVehicle
но всё крашилоC++:DW pools_cars = *(DW*)0xB74494; // int carid = SF->getSAMP()->getPlayers()->pLocalPlayer->inCarData.sVehicleID; int veh_handle = SF->getSAMP()->getVehicles()->GetCarHandleFromSAMPCarID(carid); DW car = *(DW*)(pools_cars + (veh_handle * 0xA18)); //////////////////////////////////////////////////////////////////////////////////// DW pools_cars = *(DW*)(*(DW*)0xB74494); int carid = SF->getSAMP()->getPlayers()->pLocalPlayer->inCarData.sVehicleID; int veh_handle = SF->getSAMP()->getVehicles()->GetCarHandleFromSAMPCarID(carid); DW car = *(DW*)(pools_cars + (veh_handle * 0xA18)); //////////////////////////////////////////////////////////////////////////////////// DW pools_cars = 0xC502AA0; int carid = SF->getSAMP()->getPlayers()->pLocalPlayer->inCarData.sVehicleID; int veh_handle = SF->getSAMP()->getVehicles()->GetCarHandleFromSAMPCarID(carid); DW car = *(DW*)(pools_cars + (veh_handle * 0xA18));