Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Eresik
0 / 0 / 0
Регистрация: 25.09.2014
Сообщений: 13
#1

Ошибка с заголовочными файлами - C++

14.10.2014, 15:16. Просмотров 410. Ответов 16
Метки нет (Все метки)

error C1014: слишком много включаемых файлов: глубина = 1024
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2014, 15:16
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ошибка с заголовочными файлами (C++):

Непонятка с заголовочными файлами - C++
game.h #ifndef _GAME_H_ #define _GAME_H_ #include <gl\gl.h> #include <gl\glu.h> #pragma comment (lib,...

Работа с заголовочными файлами - C++
Приветствую! Простейшая программа с подключением заголовочного файла выдаёт следующие ошибки: 1) main.cpp: (.text+0x32):...

В чем разница между заголовочными файлами и библиотеками - C++
В чем разница между заголовочными файлами и библиотеками? И, вообще, какова структура библиотеки в С++?

Создание статической библиотеки из нескольких файлов с несколькими заголовочными файлами - C++
В общем, имеется несколько классов, как водится - каждый имеет .h/.cpp. Решил собрать все это дело в библиотеку, но вот беда - все равно...

Как пользоваться заголовочными файлами и использовать несколько исходных файлов? - C++
Как пользоваться несколькими файлами cpp, и заголовками h , в Visual Studio WIN32 C++ Дайте пожалуйста инфу, или статью , как...

Ошибка с потоковыми файлами... - C++
#include "iostream.h" #include "stdio.h" #include "string.h" #include "stdlib.h" #include "stdafx.h" #include <fstream> ...

16
p_r_a_g_m_a
110 / 62 / 18
Регистрация: 08.03.2012
Сообщений: 211
Завершенные тесты: 1
14.10.2014, 15:19 #2
Цитата Сообщение от Eresik Посмотреть сообщение
error C1014: слишком много включаемых файлов: глубина = 102
Исходный код с подключенными заголовочными файлами выложите
0
Eresik
0 / 0 / 0
Регистрация: 25.09.2014
Сообщений: 13
14.10.2014, 15:24  [ТС] #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
#include "stdafx.h"
#include "Bot.h"
 
BOT bot;
 
bot.client.Init();                                  //инициализация
Label1->Caption = bot.client.pid;                   //Выводим pid процесса клиента игры
 
struct CLIENT{
    DWORD pid;                                      
    DWORD PIDByProcName(AnsiString ProcessName);    
    void Init();                                    
};
 
DWORD PIDByProcName(AnsiString ProcessName){
    PPROCESSENTRY32 ProcessEntry;
    HANDLE pHandle;
    DWORD pid;
    pHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    ProcessEntry.dwSize = sizeof(ProcessEntry);
    pid = 0;
    bool loop = Process32First(pHandle, &ProcessEntry);
    while (loop){
        AnsiString nm = ProcessEntry.szExeFile;
        if (nm = ProcessName){
            pid = ProcessEntry.th32ProcessID;
            CloseHandle(pHandle);
            break;
        }
        loop = Process32Next(pHandle, &ProcessEntry);
    }
    return pid;
}
Это сам юнит
C++
1
2
#include "stdafx.h"
#include "Client.h"
client.cpp
C++
1
#include "Client.h"
client.h
C++
1
2
3
4
5
6
7
8
9
10
#include "stdafx.h"
#include "Client.h"
 
#ifndef BotH
#define BotH
 
struct BOT{
    CLIENT client;
};
#endif
bot.cpp
C++
1
2
3
4
5
6
7
8
9
10
#include "stdafx.h"
#include "Client.h"
 
#ifndef BotH
#define BotH
 
struct BOT{
    CLIENT client;
};
#endif
bot.h
0
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
14.10.2014, 15:26 #4
Цитата Сообщение от Eresik Посмотреть сообщение
глубина = 1024
Наверное сделано что-то типа включение самого себя без include-guard'а. Вот и результат.

Переместить это в начало хедера, а из сишников вообще убрать:
C++
1
2
#ifndef BotH
#define BotH
0
Eresik
0 / 0 / 0
Регистрация: 25.09.2014
Сообщений: 13
14.10.2014, 15:30  [ТС] #5
Проблема в Client.h

Да, там включение самого себя, вот только как это изменить, не понимаю,голова уже пухнет
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 702
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
14.10.2014, 15:30 #6
Цитата Сообщение от Eresik Посмотреть сообщение
client.h
#include "Client.h"
Как так??? Самого себя подключает???
0
Eresik
0 / 0 / 0
Регистрация: 25.09.2014
Сообщений: 13
14.10.2014, 15:31  [ТС] #7
воооот, именно, я не знаю,что сделать))

Только, названия файла, снизу...
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 702
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
14.10.2014, 15:32 #8
Цитата Сообщение от Eresik Посмотреть сообщение
я не знаю,что сделать
наверное убрать строчку #include "Client.h" из файла client.h
0
Eresik
0 / 0 / 0
Регистрация: 25.09.2014
Сообщений: 13
14.10.2014, 15:33  [ТС] #9
Когда убираешь его, тогда, весь код не понимает ничего))
0
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
14.10.2014, 15:36 #10
Цитата Сообщение от Eresik Посмотреть сообщение
Когда убираешь его, тогда, весь код не понимает ничего))
Во-первых, почитай что такое include-guard.
Во-вторых, если один класс у тебя использует другой, то нужно использовать предварительное объявление.
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 702
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
14.10.2014, 15:36 #11
Eresik, может, потому что client.h вообще нигде не нужен, т.к. он не выполняет никакой роли, кроме как подключения самого себя к самому себе?
0
Eresik
0 / 0 / 0
Регистрация: 25.09.2014
Сообщений: 13
14.10.2014, 15:47  [ТС] #12
Во-первых, почитай что такое include-guard.
Во-вторых, если один класс у тебя использует другой, то нужно использовать предварительное объявление.
Почитал,спасибо. Понять не могу,что куда объявить?

Eresik, может, потому что client.h вообще нигде не нужен, т.к. он не выполняет никакой роли, кроме как подключения самого себя к самому себе?
В данный момент, он ищет PID процесса.
0
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
14.10.2014, 16:10 #13
Цитата Сообщение от Eresik Посмотреть сообщение
Понять не могу,что куда объявить?
Что на текущий момент получилось покажи, а то у тебя bot.h и bot.cpp одинаковые.
P.S. сначала всё же стоит писать имя файла, а потом уже его текст.
А ещё лучше, если включить имя файла как комментарий в первую строку файла:
C++
1
2
//file.cpp
... содержимое файла ...
0
Eresik
0 / 0 / 0
Регистрация: 25.09.2014
Сообщений: 13
14.10.2014, 23:45  [ТС] #14
Так что можно сделать то?
0
alsav22
5437 / 4832 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.10.2014, 00:00 #15
Цитата Сообщение от Eresik Посмотреть сообщение
Так что можно сделать то?
...
Цитата Сообщение от Tulosba Посмотреть сообщение
Переместить это в начало хедера, а из сишников вообще убрать:
C++
1
2
#ifndef BotH
#define BotH
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
убрать строчку #include "Client.h" из файла client.h
0
15.10.2014, 00:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2014, 00:00
Привет! Вот еще темы с ответами:

Что-то с файлами ошибка - C++
Вот код // Сортировки по полям.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include...

Ошибка при работе с файлами - C++
Всем привет! Подккажите, плиз, что у меня неправильно в коде: #include <cstdlib> #include <stdio.h> #include <stdlib.h> #include...

Ошибка при работе с файлами - C++
Необходимо, создать текстовый файл со случайным именем в диапазоне 8 символов, латиница. Вот код: int main() { ...

Что за ошибка?? (Работа с бинарными файлами) - C++
скажите, что за "левая" ошибка вылазит после оканчания программы??? вот код #include <iostream> #include <fstream> #include...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru