• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Для чего нужны файлы заголовков .h ?

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Мар 2019
Сообщения
66
Реакции
2
Для чего нужен .h, если можно использовать только .cpp. Как работать с .h файлами, в совокупности с .cpp ? Просто я привык делать только с .cpp, с .h не было дел.
 
Последнее редактирование:
Во всех читах, в исходниках я вижу и .h и .cpp, для чего они? по-подробней пожалуйста!)
В программировании заголовочный файл(
Пожалуйста, авторизуйтесь для просмотра ссылки.
header file) или подключаемый файл — файл, содержимое которого автоматически добавляется
Пожалуйста, авторизуйтесь для просмотра ссылки.
в
Пожалуйста, авторизуйтесь для просмотра ссылки.
в том месте, где располагается некоторая
Пожалуйста, авторизуйтесь для просмотра ссылки.
({$I file.inc} в
Пожалуйста, авторизуйтесь для просмотра ссылки.
, #include <file.h> в Си).

В языках программирования
Пожалуйста, авторизуйтесь для просмотра ссылки.
и
Пожалуйста, авторизуйтесь для просмотра ссылки.
заголовочные файлы — основной способ подключить к программе
Пожалуйста, авторизуйтесь для просмотра ссылки.
, структуры,
Пожалуйста, авторизуйтесь для просмотра ссылки.
,
Пожалуйста, авторизуйтесь для просмотра ссылки.
и
Пожалуйста, авторизуйтесь для просмотра ссылки.
, используемые в другом модуле.
Пожалуйста, авторизуйтесь для просмотра ссылки.
используется
Пожалуйста, авторизуйтесь для просмотра ссылки.
.h; иногда для заголовочных файлов языка
Пожалуйста, авторизуйтесь для просмотра ссылки.
используют расширение .hpp.

Чтобы избежать повторного включения одного и того же кода, используются директивы #ifndef, #define, #endif.

Заголовочный файл в общем случае может содержать любые конструкции
Пожалуйста, авторизуйтесь для просмотра ссылки.
, но на практике исполняемый код (за исключением
Пожалуйста, авторизуйтесь для просмотра ссылки.
в
Пожалуйста, авторизуйтесь для просмотра ссылки.
) в заголовочные файлы не помещают. Например,
Пожалуйста, авторизуйтесь для просмотра ссылки.
, которые должны быть объявлены более чем в одном файле, удобно описать в заголовочном файле, а затем его подключать по мере надобности. Подобным же образом работает
Пожалуйста, авторизуйтесь для просмотра ссылки.
и в большинстве
Пожалуйста, авторизуйтесь для просмотра ссылки.
.

По сложившейся традиции, в заголовочных файлах объявляют функции
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
и
Пожалуйста, авторизуйтесь для просмотра ссылки.
.

В других языках (например, в
Пожалуйста, авторизуйтесь для просмотра ссылки.
) применяется развитая система модулей. Но и в них заголовочные файлы имеют определённую ценность. Дело в том, что два файла (основной и заголовочный) сливаются в одну
Пожалуйста, авторизуйтесь для просмотра ссылки.
, и поэтому заголовочный файл может содержать
Пожалуйста, авторизуйтесь для просмотра ссылки.
, незаконченные синтаксические конструкции.
 
Если в кратце, то много для чего. Например объявление прототипов функций, как в частности. Для макросов, структур, некоторых классов и т.п.
 
Why do people think they can attempt to "create" their own cheats in a coding language that they don't even near recognize?

C ++ Separate Header and Implementation Files . C ++ classes (and often function prototypes) are normally split up into two files . The header file has the extension of .h and contains class definitions and functions. The implementation of the class goes into the. cpp file .
 
Го сделаю легче.
В основном в .cpp прописаны сами коды функций,а в .h "сдк"
 
Можете помочь( Не обзывайте меня,я знаю, что написал чушь(. Помогите, в чем проблема?
Ошибка: идентификатор не определен. Эта ошибка во всех остальных файлах, где я хочу использовать переменные(например в wallhack.cpp и в triggerbot.cpp. я там пишу #include getoffsets.h, а не .cpp
getoffsets.h
#pragma once
#include <iostream>
#include "MemMan.h"
#include "Offsets.h"
using namespace std;
MemMan mem;

class GetOffsets {
public:
DWORD process = mem.getProcess("csgo.exe");
DWORD client_dll = mem.getModule(process, "client_panorama.dll");
int delay;
float fl;
struct Vector {
public:
float x, y, z;
};
void Get();
};
GetOffsets *getoff = new GetOffsets();

getoffsets.cpp
#include <iostream>
#include <Windows.h>
#include "MemMan.h"
#include "getoffsets.h"
#include "Offsets.h"
using namespace std;
void GetOffsets::Get() {
for(int i=0;i<32;i++){
Vector LocalHeadPos;
DWORD LocalPlayer = mem.readMem<DWORD>(client_dll + hazedumper::dwLocalPlayer);
DWORD PlayerTeam = mem.readMem<DWORD>(LocalPlayer + hazedumper::m_iTeamNum);
DWORD EntityList = mem.readMem<DWORD>(client_dll + hazedumper::dwEntityList + i * 0x10);
DWORD EntityTeam = mem.readMem<DWORD>(EntityList + hazedumper::m_iTeamNum);
DWORD PlayerVelocity = mem.readMem<DWORD>(LocalPlayer + hazedumper::m_vecVelocity);
DWORD CrosshairIndex = mem.readMem<DWORD>(LocalPlayer + hazedumper::m_iCrosshairId);
DWORD CrosshairEntity = mem.readMem<DWORD>(client_dll + hazedumper::dwEntityList + (CrosshairIndex - 1) * 16);
DWORD CrosshairEntityTeam = mem.readMem<DWORD>(CrosshairEntity + hazedumper::m_iTeamNum);
BYTE Flags = mem.readMem<BYTE>(LocalPlayer + hazedumper::m_fFlags);
DWORD Weapon = mem.readMem<DWORD>(LocalPlayer + hazedumper::m_hActiveWeapon);
DWORD WeaponEntity = mem.readMem<DWORD>(client_dll + hazedumper::dwEntityList + ((Weapon & 0xFFF) - 1) * 0x10);
DWORD WeaponIndex = mem.readMem<DWORD>(WeaponEntity + hazedumper::m_iItemDefinitionIndex);
Vector EntityLocation = mem.readMem<Vector>(EntityList + hazedumper::m_vecOrigin);
Vector MyLocation = mem.readMem<Vector>(LocalPlayer + hazedumper::m_vecOrigin);
cout << CrosshairEntityTeam << endl;
double Rasstoyanie = sqrt(pow(MyLocation.x - EntityLocation.x, 2) + pow(MyLocation.y - EntityLocation.y, 2) + pow(MyLocation.z - EntityLocation.z, 2)) * 0.0254;
}


Только без оскорблений( я все еще не опытен.
 
Последнее редактирование:
Можете помочь( Не обзывайте меня,я знаю, что написал чушь(. Помогите, в чем проблема?
Ошибка: идентификатор не определен. Эта ошибка во всех остальных файлах, где я хочу использовать переменные(например в wallhack.cpp и в triggerbot.cpp. я там пишу #include getoffsets.h, а не .cpp
getoffsets.h
#pragma once
#include <iostream>
#include "MemMan.h"
#include "Offsets.h"
using namespace std;
MemMan mem;

class GetOffsets {
public:
int delay;
float fl;
struct Vector {
public:
float x, y, z;
};
void Get();
};
GetOffsets *getoff = new GetOffsets();

getoffsets.cpp
#include <iostream>
#include <Windows.h>
#include "MemMan.h"
#include "getoffsets.h"
#include "Offsets.h"
using namespace std;
void GetOffsets::Get() {
Vector LocalHeadPos;
DWORD LocalPlayer = mem.readMem<DWORD>(client_dll + hazedumper::dwLocalPlayer);
DWORD PlayerTeam = mem.readMem<DWORD>(LocalPlayer + hazedumper::m_iTeamNum);
DWORD EntityList = mem.readMem<DWORD>(client_dll + hazedumper::dwEntityList + i * 0x10);
DWORD EntityTeam = mem.readMem<DWORD>(EntityList + hazedumper::m_iTeamNum);
DWORD PlayerVelocity = mem.readMem<DWORD>(LocalPlayer + hazedumper::m_vecVelocity);
DWORD CrosshairIndex = mem.readMem<DWORD>(LocalPlayer + hazedumper::m_iCrosshairId);
DWORD CrosshairEntity = mem.readMem<DWORD>(client_dll + hazedumper::dwEntityList + (CrosshairIndex - 1) * 16);
DWORD CrosshairEntityTeam = mem.readMem<DWORD>(CrosshairEntity + hazedumper::m_iTeamNum);
BYTE Flags = mem.readMem<BYTE>(LocalPlayer + hazedumper::m_fFlags);
DWORD Weapon = mem.readMem<DWORD>(LocalPlayer + hazedumper::m_hActiveWeapon);
DWORD WeaponEntity = mem.readMem<DWORD>(client_dll + hazedumper::dwEntityList + ((Weapon & 0xFFF) - 1) * 0x10);
DWORD WeaponIndex = mem.readMem<DWORD>(WeaponEntity + hazedumper::m_iItemDefinitionIndex);
Vector EntityLocation = mem.readMem<Vector>(EntityList + hazedumper::m_vecOrigin);
Vector MyLocation = mem.readMem<Vector>(LocalPlayer + hazedumper::m_vecOrigin);
cout << CrosshairEntityTeam << endl;
double Rasstoyanie = sqrt(pow(MyLocation.x - EntityLocation.x, 2) + pow(MyLocation.y - EntityLocation.y, 2) + pow(MyLocation.z - EntityLocation.z, 2)) * 0.0254;


Только без оскорблений( я все еще не опытен.
скрин ошибок сделай
 

Вложения

  • 1.PNG
    1.PNG
    71.7 KB · Просмотры: 16
  • 2.PNG
    2.PNG
    64.3 KB · Просмотры: 15
  • 3.PNG
    3.PNG
    58.4 KB · Просмотры: 10
во всех файлах есть инклуд файла заголовка, если в файл заголовка getoffsets.h добавить переменные(просто их обьявить), которые обьявляются в getoffsets.cpp, то он напишет, что переменная пустая, в таком духе.
 
в getoffsets.h измени "GetOffsets *getoff = new GetOffsets();" на "extern GetOffsets *getoff;"
в getoffsets.cpp добавь "GetOffsets *getoff = new GetOffsets();" после всех include'ов
 
в getoffsets.h измени "GetOffsets *getoff = new GetOffsets();" на "extern GetOffsets *getoff;"
в getoffsets.cpp добавь "GetOffsets *getoff = new GetOffsets();" после всех include'ов
Спасибо большое. Твой ответ дал мне понять кое что. Теперь, в других файлах, чтобы получить переменную, я пишу везде getoff->delay. правильно ли я делаю?
то есть, перед каждой переменной, добавляю getoff->
 
Спасибо большое. Твой ответ дал мне понять кое что. Теперь, в других файлах, чтобы получить переменную, я пишу везде getoff->delay. правильно ли я делаю?
то есть, перед каждой переменной, добавляю getoff->
getoff->delay();
 
так нахуй нам сдался c++ ведь да
Просто я привык работать только с 1 файликом cpp. Мой вопрос был про: зачем добавлять еще 1 файл .h, когда можно все юзать в cpp. Но ответ свой я уже понял.
 

Вложения

  • 5.PNG
    5.PNG
    28.2 KB · Просмотры: 6
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
А что это? Кликнуть на ошибку не получается. (Уже перезапускал VS, ошибка не пропадает.)
MemMam mem; прописан только в getoffsets.h
все obj проблемы просматривай, открывая что находится в файле, тоесть не вот так два клика по файлу, а рядом на стрелку с файлом нажимаешь и ищешь нужное, покрайней мере такие вот obj проблемы ищу и исправляю.
 
все obj проблемы просматривай, открывая что находится в файле, тоесть не вот так два клика по файлу, а рядом на стрелку с файлом нажимаешь и ищешь нужное, покрайней мере такие вот obj проблемы ищу и исправляю.
у него аналогичная проблема с объявлением объекта класса, либо проблема с include'ами
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу