Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Eresik
0 / 0 / 0
Регистрация: 25.09.2014
Сообщений: 13
1

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

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

error C1014: слишком много включаемых файлов: глубина = 1024

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2014, 15:16
Ответы с готовыми решениями:

Непонятка с заголовочными файлами
game.h #ifndef _GAME_H_ #define _GAME_H_ #include <gl\gl.h> #include...

Работа с заголовочными файлами
Приветствую! Простейшая программа с подключением заголовочного файла выдаёт...

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

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

Как пользоваться заголовочными файлами и использовать несколько исходных файлов?
Как пользоваться несколькими файлами cpp, и заголовками h , в Visual Studio...

16
p_r_a_g_m_a
110 / 62 / 23
Регистрация: 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
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 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
2211 / 2007 / 940
Регистрация: 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
2211 / 2007 / 940
Регистрация: 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
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
14.10.2014, 15:36 10
Цитата Сообщение от Eresik Посмотреть сообщение
Когда убираешь его, тогда, весь код не понимает ничего))
Во-первых, почитай что такое include-guard.
Во-вторых, если один класс у тебя использует другой, то нужно использовать предварительное объявление.
0
Kerry_Jr
Эксперт PHP
2211 / 2007 / 940
Регистрация: 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
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 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
5444 / 4839 / 831
Регистрация: 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
Eresik
0 / 0 / 0
Регистрация: 25.09.2014
Сообщений: 13
15.10.2014, 00:27  [ТС] 16
Я так пробовал, результат ухудшился, тогда они не объявлены, функции что внутри client.h
0
alsav22
5444 / 4839 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
15.10.2014, 00:33 17
Цитата Сообщение от Eresik Посмотреть сообщение
Я так пробовал,
Пробы покажи. Что и как ты там пробовал, никому неизвестно, кроме тебя.
0
15.10.2014, 00:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2014, 00:33

Ошибка с потоковыми файлами...
#include "iostream.h" #include "stdio.h" #include "string.h" #include...

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

Ошибка при работе с файлами
Необходимо, создать текстовый файл со случайным именем в диапазоне 8 символов,...


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

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

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