HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 03.11.2021, 17:14
Ya Zaregalsya
Постоянный
Регистрация: 29.05.2017
Сообщений: 394
С нами: 4714653

Репутация: 98
По умолчанию

Наверно тупой вопрос, но как реализовать что-то типа #include "MyCatalog/header.h"? Чтобы не придумывать изощрённые имена своим файлам, а просто вынести их в отдельный раздел по тому же принципу, как с пространством имён. Если просто сделать фильтр в Visual Studio, то это никак не влияет на #include, всё равно он видит только сами файлы как будто они в общей куче.
 
Ответить с цитированием

  #2  
Старый 03.11.2021, 17:53
.deserve
Познающий
Регистрация: 06.09.2018
Сообщений: 32
С нами: 4045092

Репутация: 23
По умолчанию

первое: создаешь новый каталог в папке с проектом и туда скидываешь всё чё хочешь, ток не забудь добавить это в проект в vs (он не отслеживает изменения в родительском каталоге)

второе: почитай ка: от мелкомягких
 
Ответить с цитированием

  #3  
Старый 03.11.2021, 19:44
Ya Zaregalsya
Постоянный
Регистрация: 29.05.2017
Сообщений: 394
С нами: 4714653

Репутация: 98
По умолчанию

Первое так уже и сделано, но всё равно желаемого результата добиться особо не получается, я создал папку под свои файлы, вручную насоздавал там .h и .cpp, потом в VS добавил фильтр с тем же названием, что и папка, и по одному добавил каждый существующий файл. Статья от МС отвечает на некоторые вопросы, например почему в в одних файлах команда #include "MyCatalog/header.h" работает, а в других она уже пестрит ошибками. Видимо так и должно быть, чтобы потом свою папку можно было свободно тягать по разным проектам.

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

  #4  
Старый 03.11.2021, 20:01
.deserve
Познающий
Регистрация: 06.09.2018
Сообщений: 32
С нами: 4045092

Репутация: 23
По умолчанию

ты типа хочешь в файлах, которые лежат в папке MyCatalog использовать #include "MyCatalog/header.h"?

как вариант можно сделать вот так: #include "../MyCatalog/header.h"

или добавить в additional include directories (/I опшн) корневую папку в которой лежит MyCatalog. И тогда ты сможешь использовать #include "MyCatalog/header.h". При чем производительный вариант использовать <> скобки, ибо тогда компилятор будет искать сразу в /I параметрах. А если "", то он будет еще рекурсивно на 10 каталогов углубляться в поисках. Хотя по стилю кода лучше юзать "" для не системных файлов
 
Ответить с цитированием

  #5  
Старый 03.11.2021, 20:27
Ya Zaregalsya
Постоянный
Регистрация: 29.05.2017
Сообщений: 394
С нами: 4714653

Репутация: 98
По умолчанию

Цитата:
Сообщение от .deserve  

ты типа хочешь в файлах, которые лежат в папке MyCatalog использовать #include "MyCatalog/header.h"?
как вариант можно сделать вот так: #include "../MyCatalog/header.h"
или добавить в additional include directories (/I опшн) корневую папку в которой лежит MyCatalog. И тогда ты сможешь использовать #include "MyCatalog/header.h". При чем производительный вариант использовать <> скобки, ибо тогда компилятор будет искать сразу в /I параметрах. А если "", то он будет еще рекурсивно на 10 каталогов углубляться в поисках. Хотя по стилю кода лучше юзать "" для не системных файлов
Добавил в дополнительные каталоги включения полную директорию проекта, теперь везде можно писать как хотелось, но при этом можно писать и как раньше, просто header.h. Значит ли это, что вся эта писанина по факту никаких конфликтов имён не разрешит, и если у нас два файла header.h в разных папках, то всё равно будут проблемы? И не будет ли багов из-за того, что в дополнительных каталогах указана папка с текущим проектом?
 
Ответить с цитированием

  #6  
Старый 03.11.2021, 20:36
.deserve
Познающий
Регистрация: 06.09.2018
Сообщений: 32
С нами: 4045092

Репутация: 23
По умолчанию

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

Но эти конфликты могут возникнуть только из-за косячного способа инкдуда, а я напомню их два: "" и <>.

Опять же читай доку мсдн в каком порядке работает поиск файла с инклуда. Там порядок поиска написан. Он дальше не будет искать файл, если он его уже нашёл лол.

p.s. и еще конфликт может быть при добавлении 2 одинаковых каталогов в /I. Но нахуя тебе это делать?
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.