Другое С/С++ Вопрос - Ответ

loganhackerdff

Известный
868
517
что не так в этом коде? машина 100% существует
C++:
                if (SF->getGame()->isKeyPressed(VK_F1))
                    PEDSELF->GetVehicle()->GetHandlingData()->SetEngineAcceleration(80.f);
крашит при использовании
 

Tox777z

Известный
21
2
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;
 

SR_team

like pancake
BH Team
4,720
6,370
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);

}
 
  • Нравится
Реакции: Tox777z

Tox777z

Известный
21
2
у тебя функция принимает изменяемый аргумент, а ты передаешь не изменяемый.

Делай так:
Код:
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"
 

SR_team

like pancake
BH Team
4,720
6,370
Код:
Ошибка (активно)    E0167    аргумент типа "const char *" несовместим с параметром типа "PCHAR"

Ошибка    C2664    "void AddMessageJumpQ(const PCHAR,UINT,USHORT,bool)": невозможно преобразовать аргумент 1 из "const char [15]" в "const PCHAR"
у тебя PCHAR это точно char*? если нет, то замени
 
  • Нравится
Реакции: Tox777z

underhazee

Новичок
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.
 

Izvinisb

Известный
Проверенный
964
598
мужики в чем проблема

условие: Дано целое число 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.
C++:
#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;
}
 
D

deleted-user-204957

Гость
мужики в чем проблема

условие: Дано целое число 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.
Потому что факториал 0 = 1. А у тебя в коде он равен 0
 

bl3ckside

Новичок
1
0
С помощью каких библиотек можно получить кол-во онлайн игроков на сервере по IP сервера?
Язык C#.
 

Tox777z

Известный
21
2
Допустим у меня есть dll в чите. Как создать для него лоадер .exe чтобы еще его можно было отгрузить на кнопку?
 

loganhackerdff

Известный
868
517
@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));
но всё крашило
 

kin4stat

mq-team
Всефорумный модератор
2,730
4,712
@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));
но всё крашило
Ты хочешь машину в которой ты сидишь получить?