Я, блять, уже не могу. Объясните, мне, долбаебу, как правильно включать заголовочные файлы в С++. Допустим, у меня есть файл DllMain.h, файл Entity.h и файл Chest.h. Все эти три файла должны иметь возможность вызывать функции определённые в GL.h (старый OpenGL, но это не важно, вопрос в другом) а значит нужно подключить этот GL.h куда-то. При попытке подключения GL.h ко всем трём файлам, посыпались разные ошибки. При попытке подключить GL.h в DllMain.h, а в файлах Entity.h и Chest.h подключить уже DllMain.h ошибки пропадают и все норм НО. DllMain.h должен иметь возможность вызывать функции draw() из Entity.h и Chest.h, а значит их нужно подключить в DllMain.h. И тут появляется ошибка, файл включает сам себя. Идея была в том, что в DllMain написать основной код, а код на рисование и хранение данных сущностей и сундуков раскидать по классам. Все три файла вызывают некоторые функции из OpenGL, например, DllMain настраивает матрицы перед вызовом draw() из тех файлов. Как сделать чтобы было правильно? Объясните пожалуйста, я не понимаю и хочу плакать :((
шиз-майнкрафтер, который уже год хуярит свой чит-велосипед со шлюхами и блекджеком, ты? как можно иметь такую сука упертость и быть при этом таким тупым. выучи сперва матчасть, а потом уже хуярь свое говно
>>248038745 (OP) > Я, блять, уже не могу. Объясните, мне, долбаебу, как правильно включать заголовочные файлы в С++. Допустим, у меня есть файл DllMain.h, файл Entity.h и файл Chest.h. Все эти три файла должны иметь возможность вызывать функции определённые в GL.h (старый OpenGL, но это не важно, вопрос в другом) а значит нужно подключить этот GL.h куда-то. При попытке подключения GL.h ко всем трём файлам, посыпались разные ошибки. При попытке подключить GL.h в DllMain.h, а в файлах Entity.h и Chest.h подключить уже DllMain.h ошибки пропадают и все норм НО. DllMain.h должен иметь возможность вызывать функции draw() из Entity.h и Chest.h, а значит их нужно подключить в DllMain.h. И тут появляется ошибка, файл включает сам себя. Идея была в том, что в DllMain написать основной код, а код на рисование и хранение данных сущностей и сундуков раскидать по классам. Все три файла вызывают некоторые функции из OpenGL, например, DllMain настраивает матрицы перед вызовом draw() из тех файлов. Как сделать чтобы было правильно? Объясните пожалуйста, я не понимаю и хочу плакать :((
>>248038745 (OP) Очень интересно. Тоже так и не смог научиться писать проги в несколько файлов. Как это сделать, блядь, чтобы они не включали друг друга бесконечно? Где вообще почитать про эту магию?
>>248038745 (OP) > функции определённые в GL.h Чет мне не верится что разрабы OGL такие долбоебы, что определяют функции в шапке. Твой первый подход верен, ебашь GL во все три файла.
>>248038745 (OP) Где эта картинка была раньше? Я был сверхразумом (кидал проэкты по папочкам, архивовал и хранил на гугл диске). Сча выучил гит и охуел как удобно.
Если бы эту картинку раньше увидел, не делал бы этой кринжятины с архивацией разных версий проектов. Я даже не знал что такое есть, в унике никто не сказал, а гитхаб я думал просто хранит последние файлы
>>248039366 Я не знаю где они определяются, но для того чтобы их вызывать, нужно подключать GL.h. Если я подключаю его ко всем трём файлам, то появляется куча ошибок.
>>248039382 Я вовсе никаких копий не делаю, если же нужно что-то поменять, то беру и меняю прямо в текущем проекте. Если что-то пошло не так и нужно откатиться назад, возвращаюсь к самому первому изменению в Visual Studio.
>>248039510 Читай по буквам, я вполне доступно написал. Ну и на всякий случай добавь #pragma once, я ж не знаю, в каком IDE и под каким компилятором ты это всё пишешь
Насколько я помню, правилом хорошего тона является вовсе безподключаемость чего-либо в заголовках (h/hpp), ибо каждое подключение будет загружать один и тот же код столько раз, сколько будет подключений.
Сам пробовал уже гуглить на тему многомодульности?
pragma once или IFNDEF header DEFINE header ... ENIF на весь файл есть, в каждом из твоих заголовочных файлов? По описанию выглядит, что твои файлы инклюдят друг друга по нескольку раз
>>248039789 А ты, я так понимаю, с рождения умел программировать и всё понимал? Похлопаю, если да. И я не кричал что она зашифрована. Я просил помочь, подсказать, как перевести её в нужный мне вид. Перед этим достаточно погуглив, но не получив нужного результата. А теперь, съеби с треда, если ничего по делу сказать не можешь.
>>248040203 Молодец, это был твой выбор. Я всегда, перед тем как лезть сюда, ищу информацию и пытаюсь её понять. Сюда прихожу только в крайнем случае. Если бы я сюда по любой хуйне писал, ты бы видел намного больше моих тредов.
>>248040279 Это не правильно, GL.h это заголовочный файл OpenGL дающий доступ к вызову разных функций для рисования. Это его инклудить куда-то надо. А не к нему.
>>248039789 То есть это не первый тред? Сам до сих пор подрачиваюсь с вводом/выводом бывает.
>>248039832 Ну для начала можешь просто сделать общий заголовок, где все классы будут объявлены, а затем просто подключи его в реализации, ну а gl.h подключи в заголовке. Думаю, хуета, но, вроде, сработает для тебя.
>>248039866 Не знаю такое, я не многим лучше ОП-хуя, хоть и учусь на погромизда.
>>248040587 Я пробовал читать пару книг по С++, но это точно не моё. Не могу сконцентрироваться, голова болеть начинает, в прямом смысле. Иногда уроки на YouTube от #SimpleCode смотрю и недавно вот по совету одного анона на ravesli стал заходить, буду обучаться там ещё.
>>248040699 >Не могу сконцентрироваться, голова болеть начинает, в прямом смысле. Если ты не шиз, то это логично. Мозг пытается работать и тратить калории, больше выдавать крови в голову. Надо продолжать и лучше всего липмана читать.
>>248040733 Если под шизой, ты имеешь ввиду именно шизу, то не шиз. А если любые беды с башкой, то шиз. Мне гораздо легче понимать информацию из ravesli и с ютуба.
>>248040822 У тебя реально проблемы с головой если ты думаешь что с++ сложный или его выбирают долбоёбы. >>248040785 >легче Не легче, а проще. Мозг он как мышца, его тоже надо качать. Зачем, думаешь, в техвузах так 3 семестра матана и физики?
>>248040975 С++ сложный, в сравнении с некоторыми другими языками. Но я не говорил что его выбирают долбаебы. Это скорее была шутка, которую ты не понял.
>>248041048 >С++ сложный Он для внимательных. При этом С++ всё делает за тебя, в отличии от того же GO в котором надо соблюдать конвенции, бест практики и т.п., чего сам компилятор не отслеживает.
>>248041048 подожди пока в ближайшие пару лет сделают подключение файлов сразу в виде бинарного кода, как в многих других языках(даже, господи прости, в делфи) и с++ будет топ 1 технологией в программировании. Есть проверенная инфа, что над этим работают ребята из буста
>>248038745 (OP) Вывернуть мозг наизнанку, чтобы научиться самому. Или позвать программиста, дать ему задачу, оплатить его работу и получить результат, тут правда надо отличить программиста от пиздобола, и найти с ним общий язык.
>>248042847 У меня проект маленький, всего 600 строк кода в одном файле, но я хотел разбить его на несколько, чтобы было намного проще во всем этом копаться.
>>248043656 Может и волокут, но пока от них добъешься ответа тебя 10 раз обоссут, отправят нахуй, скажут что программирование это не твое и совокупятся с твоими родными через экран, а буржуи отвечают обычно сразу и по существу, еще и дополнительно чего может предложат
>>248043751 я создал тред по теме программирования в разделе б сначала а потом в программировании. если интересно, то хотел бы знать твоего мнения ссыль вот https://2ch.hk/pr/res/2054324.html
О, раз такой тред - я тоже когда пытался вкатиться в плюсы не понял как бороться и забыл. Но щас ты напомнил. Я верно понимаю, что в начале каждого заголовочника должен ставиться #define CLASS_NAME? Так вот, попробуй поиграться с ifndef и подключать либы если ifndef CLASS_NAME. Если будешь делать - ответь пжста, мне самому интересно. Если не будешь - тоже ответь, сам попробую>>248038745 (OP)
>>248044072 Помочь то оно поможет, скорее всего, но мне кажется я изначально не правильно спроектировал проект. Мне сейчас важно "лишь бы работало", оно работает и так, просто мне нужно тот файл на классы разбить.
>>248044303 Ну ты гляди, я долго спать буду, а потом ещё дела делать всякие и только потом за пэку. Лучше сам уж глянь. То что поможет, это мне кажется 100%, но по моему не правильно это как-то.
>>248038745 (OP) Потому что ты нихуя не программист а гавно тупое. Я с Си знаком был по вузу и с ним не работал. Как-то мне дали проект на с++ и Я его сделал без проблем. То что ты спрашиваешь это просто нехватка у тебя исследовательской жилки и эрудиции, которые важны для погромиста. Ты должен САМ решить задачу или уебывать с отрасли, зумер
>>248044379 >РРЯ ВСЕ ДОЛЖНЫ ДЕЛАТЬ ВСЕ САМИ ИНАЧИ АНИ НИПРАГРАМИСТЫ!! Печот с того что кто-то другой вместо того чтобы сдаться, пошёл логичным путём и задал вопрос?
>>248042128 А вот поясните за прагму и гварды. Я си почти не трогал, только в унике, но всегда юзал прагму, т.к хули gcc ее поддерживает, а на остальное говно, что там есть поебать. Разница только в поддержке ведь? Ну и вроде как гварды это костыль. В общем, почему до сих пор юзают гварды, если есть прагма? Речь идёт именно про подключение хедеров, а не использование кода в зависимости от платформы
>>248044549 >Печот с того что кто-то другой вместо того чтобы сдаться, пошёл логичным путём и задал вопрос? У меня не печет как раз таки. У зумерков Я смотрю проблемки с сарказмом все буквально воспринимают. Оп задал вопрос, который должен решать сам программер. У него некий набор класмов, который специфически организован и чтобы его разгрести нужно просто понимать азы программирования на Си. Программист сам разбирает ошибки и двигается от одной к другой, если не хватает ума решить сразу все знаниями и логически
>>248044640 Когда Я был молодой в 2000х в интернетах вообще нихуя не было. Ютуба не было. Все знания брали с книжек. Сейчас блять в ютубе дохера мастерклассов где люди на понятном языке объясняют тупым зумерам что угодно по прогерству. Инфы вагон. Идти на б (где темки про инцелов и трапиков) и ныть про непонимание основ Си это показать интеллекта этого зумерка