Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 14.06.2022
Сообщений: 4

Ошибка компиляции "невозможно преобразовать параметр 1 из 'WCHAR [256]' в 'const char *'"

14.06.2022, 23:11. Показов 927. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я решил попробовать написать свой чит для кс го (для просмотра сквозь стены) и через 3 дня экспериментов был написан следующий код.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#include <iostream>
#include <Windows.h>
#include <TlHelp32.h>
#include <thread>
const DWORD dwLocalPlayer = 0xCBD6A4;
const DWORD dwEntityList = 0x4CCDCBC;
const DWORD m_iTeamNum = 0xF4;
const DWORD m_iGlowIndex = 0xA3F8;
const DWORD dwGlowObjectManager = 0x520DAE0;
bool wh = false;
HANDLE process; // непосредственно сам процесс CSGO
DWORD clientBase; // для работы с client_panorama.dll
DWORD engineBase; // для работы с engine.dll
 
DWORD getModuleBaseAddress(DWORD pid, const char* name)
 
{
    HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pid);
    MODULEENTRY32 mEntry{};
    mEntry.dwSize = sizeof(MODULEENTRY32);
    do
    {
        if (!strcmp(mEntry.szModule, name))
        {
            CloseHandle(snapshot);
            return (DWORD)mEntry.modBaseAddr;
        }
    } while (Module32Next(snapshot, &mEntry));
}
 
template <typename T>
T readMem(DWORD address)
{
    T buffer{};
    ReadProcessMemory(process, (LPVOID)address, &buffer, sizeof(buffer), 0);
    return buffer;
}
 
template <typename T>
void writeMem(DWORD address, T value)
{
    WriteProcessMemory(process, (LPVOID)address, &value, sizeof(value), 0);
}
 
int main() {
 
 
 
    std::cout << "Open CS:GO\n"; // выводим в консоль сообщение о том, что надо открыть ксго
 
    HWND hwnd = nullptr;
 
    do {
        hwnd = FindWindowA(0, "Counter-Strike: Global Offensive - Direct3D 9"); // ищем ксго, если находим - выходим из цикла
        Sleep(200); // таймаут (чтобы не грузить процессор)
    } while (!hwnd);
 
    DWORD pid;
    GetWindowThreadProcessId(hwnd, &pid); // получаем id приложения
    process = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid); // заходим в кс го его id
 
    std::cout << "Csgo started, pid " << pid << ".\n"; // выводим сообщение о том, что ксго запущена
 
    do {
        clientBase = getModuleBaseAddress(pid, "client_panorama.dll"); // ищем клиент кс го
        Sleep(50);
    } while (!clientBase);
 
    do {
        engineBase = getModuleBaseAddress(pid, "engine.dll"); // ищем движок кс го
        Sleep(50);
    } while (!engineBase);
    
 
}
void wallhack()
{
    while (true) // создаем бесконечный цикл
    {
        Sleep(10); // таймаут 10 мс, чтобы не грузить процессор под 100
        if (!wallhack && !readMem<DWORD>(readMem<DWORD>(clientBase + dwLocalPlayer) + 0xED)) // если вх выключено или не удается прочитать память - выходим из цикла
            continue;
 
        DWORD glowObj = readMem<DWORD>(clientBase + dwGlowObjectManager); // создаем объект glowObj из модельки игрока
        DWORD myTeam = readMem<DWORD>(readMem<DWORD>(clientBase + dwLocalPlayer) + m_iTeamNum); // создаем объект тиммейтов
 
        for (int x = 0; x < 32; x++) // сам вх
        {
            DWORD player = readMem<DWORD>(clientBase + dwEntityList + x * 0x10); // обычный игрок
            if (player == 0)
                continue;
 
            bool dormant = readMem<bool>(player + 0xED); // спектатор
            if (dormant)
                continue;
 
            DWORD team = readMem<DWORD>(player + m_iTeamNum); // тиммейт
            if (team != 2 && team != 3)
                continue;
 
            DWORD currentGlowIndex = readMem<DWORD>(player + m_iGlowIndex); // текущий индекс игрока
 
            if (team != myTeam) // если игрок не тиммейт
            {
                // делаем его обводку красным
                writeMem<float>(glowObj + currentGlowIndex * 0x38 + 0x4, 255); // red
                writeMem<float>(glowObj + currentGlowIndex * 0x38 + 0x8, 0); // green
                writeMem<float>(glowObj + currentGlowIndex * 0x38 + 0xC, 0); // blue
                writeMem<float>(glowObj + currentGlowIndex * 0x38 + 0x10, 255);
                writeMem<bool>(glowObj + currentGlowIndex * 0x38 + 0x24, true);
                writeMem<bool>(glowObj + currentGlowIndex * 0x38 + 0x25, false);
            }
            else // если игрок тиммейт
            {
                // делаем его обводку синим
                writeMem<float>(glowObj + currentGlowIndex * 0x38 + 0x4, 0); // red
                writeMem<float>(glowObj + currentGlowIndex * 0x38 + 0x8, 0); // green
                writeMem<float>(glowObj + currentGlowIndex * 0x38 + 0xC, 255); // blue
                writeMem<float>(glowObj + currentGlowIndex * 0x38 + 0x10, 255);
                writeMem<bool>(glowObj + currentGlowIndex * 0x38 + 0x24, true);
                writeMem<bool>(glowObj + currentGlowIndex * 0x38 + 0x25, false);
            }
        }
    }
}
Однако, он не может быть скомпилирован из за одной ошибки в 23 строке.
аргумент типа WCAR несовместим с параметром типа CONST CHAR.
Перелазив все тематические форумы так и не нашел человека со схожей проблемой. Пришлось самому писать пост на киберфоруме).
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.06.2022, 23:11
Ответы с готовыми решениями:

Error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *'
error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *' void crpost(const statep &amp;struc1) { ...

Printf: невозможно преобразовать параметр 1 из 'char' в 'const char *'
Здравствуйте, подскажите как исправить? &quot;printf: невозможно преобразовать параметр 1 из 'char' в 'const char *'&quot; #include...

Невозможно преобразовать параметр 1 из 'char' в 'const char *'
Дана задача: Задана последовательность, состоящая только из символов ‘&gt;’, ‘&lt;’ и ‘-‘. Требуется найти количество стрел, которые...

3
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
15.06.2022, 06:37
C++
1
        if (!strcmp((const char*)mEntry.szModule, name))
2
фрилансер
 Аватар для Алексей1153
6451 / 5652 / 1129
Регистрация: 11.10.2019
Сообщений: 15,053
15.06.2022, 08:05
Цитата Сообщение от zamonary1 Посмотреть сообщение
mEntry.szModule, name
у name тип const char*
а у szModule, судя по словам компилятора, - WCHAR [256]

чтобы сравнить эти строки, их нужно бы представить в одной кодировке. То есть, либо передать в функцию const wchar_t* name, либо использовать явно

MODULEENTRY32A mEntry{};
и Module32NextA

а затем сравнивать (пример для варианта с const char*):

C++
1
2
3
if(std::string_view(mEntry.szModul)==name)
{
}
Добавлено через 2 минуты
а для wchar_t понадобится std::wstring_view
1
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
15.06.2022, 09:08
5.7.Запрещено обсуждение, создание и распространение вредоносного кода и ПО, вирусов, кряков и взлома лицензионного софта, а также публикация ссылок для их скачивания.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.06.2022, 09:08
Помогаю со студенческими работами здесь

Невозможно преобразовать параметр из int в const char
Приветствую, помогите пожалуйста исправить следующую ошибку: printf: невозможно преобразовать параметр 1 из &quot;int&quot; в &quot;const...

Невозможно преобразовать параметр 1 из 'const char [15]' в 'LPCWSTR'
с сайта скачала прогу которая должна рисовать сферу, но при компилировании выходит ошибка:error C2664: auxInitWindowW: невозможно...

Ошибка 1 error C2664: CFileFind::FindFile: невозможно преобразовать параметр 1 из 'const char [7]' в 'LPCTSTR'
Нужно вывести на экран, в консольном режиме имена всех файлов, которые находятся в какой-то папке... Вот код: #include...

Невозможно преобразовать параметр 1 из 'const char [3]' в 'const wchar_t *
void CprojectDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // TODO: добавьте свой код обработчика сообщений или...

Невозможно преобразовать параметр 2 из 'char' в 'const char *
Уважаемые господа программисты,как преобразовать тип переменной из 'char' в 'const char *'? Заранее спасибо


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru