![]() |
Наверно тупой вопрос, но как реализовать что-то типа #include "MyCatalog/header.h"? Чтобы не придумывать изощрённые имена своим файлам, а просто вынести их в отдельный раздел по тому же принципу, как с пространством имён. Если просто сделать фильтр в Visual Studio, то это никак не влияет на #include, всё равно он видит только сами файлы как будто они в общей куче.
|
первое: создаешь новый каталог в папке с проектом и туда скидываешь всё чё хочешь, ток не забудь добавить это в проект в vs (он не отслеживает изменения в родительском каталоге)
второе: почитай ка: от мелкомягких |
Первое так уже и сделано, но всё равно желаемого результата добиться особо не получается, я создал папку под свои файлы, вручную насоздавал там .h и .cpp, потом в VS добавил фильтр с тем же названием, что и папка, и по одному добавил каждый существующий файл. Статья от МС отвечает на некоторые вопросы, например почему в в одних файлах команда #include "MyCatalog/header.h" работает, а в других она уже пестрит ошибками. Видимо так и должно быть, чтобы потом свою папку можно было свободно тягать по разным проектам.
Хотя это странно конечно, что можно подключать файлы из каталога более высокого уровня, но при этом нельзя упомянуть собственный каталог. |
ты типа хочешь в файлах, которые лежат в папке MyCatalog использовать #include "MyCatalog/header.h"?
как вариант можно сделать вот так: #include "../MyCatalog/header.h" или добавить в additional include directories (/I опшн) корневую папку в которой лежит MyCatalog. И тогда ты сможешь использовать #include "MyCatalog/header.h". При чем производительный вариант использовать <> скобки, ибо тогда компилятор будет искать сразу в /I параметрах. А если "", то он будет еще рекурсивно на 10 каталогов углубляться в поисках. Хотя по стилю кода лучше юзать "" для не системных файлов |
Цитата:
|
Это нужно постараться, чтобы наступить на конфликтную ситуацию, но в если даже и наступишь, то vs тебе подскажет конкретный путь к данному файлу (при инклуде будет попап с обзором в файловой системе, и если навести на файлик и подожадать, то он покажет путь до него).
Но эти конфликты могут возникнуть только из-за косячного способа инкдуда, а я напомню их два: "" и <>. Опять же читай доку мсдн в каком порядке работает поиск файла с инклуда. Там порядок поиска написан. Он дальше не будет искать файл, если он его уже нашёл лол. p.s. и еще конфликт может быть при добавлении 2 одинаковых каталогов в /I. Но нахуя тебе это делать? |
| Время: 20:13 |