powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / VS2017 команда препроцессора в файле ресурсов
25 сообщений из 26, страница 1 из 2
VS2017 команда препроцессора в файле ресурсов
    #39831626
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго всем времени суток!
Возник небольшой вопрос.
Хочу при компиляции и сборке программы в зависимости от флагов включать или нет часть ресурсов в модуль.
Применяю в resources.rc

Код: plaintext
1.
2.
3.
4.
5.
#if defined(__FLAG__H)

... тут некоторые ресурсы

#endif 



Но несмотря на то, что хедер файл, в которых флаг определен
Код: plaintext
1.
2.
3.
#ifndef __FLAG__H
#define __FLAG__H
#endif


включен, в итоге ресурсы не попадают в сборку.
Линкер их не видит.
Что делаю не так?
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39831636
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ресурсные файлы и заголовки обрабатываются несколько в "упрощенном виде" нежели чем те файлы, в которых содержится непосредственный код С/С++.

Поэтому я бы посоветовал сделать следующее. В проекте создать две конфигурации: одну, которая включает (использует) данный флаг, а другую которая выключает (не использует). Если флаг используется и в С/С++ коде и в ресурсном файле, то его надо определять в двух местах настроек конфигурации проекта. Если только в одном месте, то соответственно в одном.
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39831645
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cerebrum, спасибо добрый человек!
Теперь понятно почему лыжи не ехали.
Дело в том, что у меня таких вставок может быть много, как и их комбинаций.
Проще руками в исходниках за/раскомментить.
А файл *.def (у меня DLL-ка итоговая сборка) можно как-то тоже менять?
Или просто тупо прописывать в свойствах проекта?
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39831652
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008А файл *.def (у меня DLL-ка итоговая сборка) можно как-то тоже менять?
затрудняюсь тут что-то подсказать, тк никогда не пользовался def файлами для линковки, поскольку их ни в одном более менее современном букваре использовать не советуют уже наверное лет 10-15.

В принципе, любые файлы можно менять, привязав их к определенным директивам препроцессора. Просто удобнее менять настройки через указание конкретной конфигурации проекта (Release/Debug/Release with Flags On/Off/Debug with Flags On/Off и тд), так вы не ошибетесь, какую define-переменную(ые) нужно использовать и что у вас собирается в данный конкретный момент. А менять ручками, если много где надо менять можно и забыть и ошибиться.
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39831680
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CerebrumSQL2008А файл *.def (у меня DLL-ка итоговая сборка) можно как-то тоже менять?
затрудняюсь тут что-то подсказать, тк никогда не пользовался def файлами для линковки, поскольку их ни в одном более менее современном букваре использовать не советуют уже наверное лет 10-15.
Это Autodesk API и могу играть только по их правилам :).
В принципе можно менять вручную, так как я увижу если что не так.
Итоговая DLL будет называться иначе. При тестировании ресурсы не подтянутся.
Вопрос закрыт. Просто подумал, что можно в одном месте поменять и все.
В любом случае спасибо.
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39831728
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В makefile это делается элементарно.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
ifdef FlagA
resources =  resource1 resource2
else
resources = resource3 resource4
endif

target.dll: $(resources)
     $(compiler) $^^ 
потом просто запускаешь `make -DFlagA` (или без него) и все.
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39831763
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl, спасибо, попробую.

Начинал изучение С++ с Borland 4, так как были библиотеки OWL (Object Windows Library).
Что то типа Microsoft MFC.
Просто увидел ник и вспомнил :), знаю, что это "белая сова" если что.
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39831764
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так там были библиотеки
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39831807
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cerebrumзатрудняюсь тут что-то подсказать, тк никогда не пользовался def файлами для линковки, поскольку их ни в одном более менее современном букваре использовать не советуют уже наверное лет 10-15.А что у вас идет за "современный букварь"? Не в плане оспорить утверждение, а для получения названия книги.
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39831816
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bk0010,

Хорошей литературы по прикладному использованию языка с каждым годом все меньше и меньше, потому что вся индустрия работает на облегчение труда разработчика, на высокоуровневые языки с автоматической сборкой мусора, а значит углубленные знания по предмету ему ни к чему. Это даже вредно, еще начнешь вирусню писать, которую ни один антивирус обезвредить не сможет!

Если раньше на полках стояли Рихтер, Фэнь Юань, С. Мейерс, Дон Бокс, Кит Браун, Реймонд Чэн, Ларри Остерман и пр. То сейчас ты можешь найти книгу по разработке по огромному системному или прикладному API, в которой от силы 300-400 страниц, причем большая часть из них это картинки на полстраницы. Не знаю может мне так не везет с этим. Если я нахожу в сети книгу по интересующей меня теме и в ней менее 500 страниц, то я автоматически пропускаю ее. Ну не может книга по серьезному вопросу быть уровня галлопом по европам. Берешь книгу по Vulkan API или геймдеву, а в ней от силы 400 страниц (вычесть оглавление, вступление, картинки и прочее не относящееся к непосредственному коду, то от силы там оказывается страниц 300) - просто курам на смех. По Active Directory/LDAP вообще практически ноль. Единственная известная мне более менее нормальная книга Gil Kirkpatrick - Active Directory Programming, которой нормального скана вообще по моему не существует.. Если у кого-то есть, поделитесь, пожалуйста.

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

В основном стоит читать первоисточники: стандарты, MSDN, блоги разработчиков непосредственно причастных к созданию той или иной технологии или API или же самой IDE, видеоконференции. В таких местах как правило информация разрозненна и нужно постоянно мониторить их, чтобы не пропустить что-то интересное, что требует значительного времени.

Относительно неплохо дела обстоят с книгами по самому языку, особенно по современным стандартам C++14/17/20. А вот хороших книг по прикладным вопросам крайне мало. Большинство из них широкоизвестны и имеют почтенный возраст, но по прежнему остаются восстребованными и заслуженно считаются культовыми.

Какая конкретно область разработки вас интересует ?
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39831820
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CerebrumХорошей литературы по прикладному использованию языка с каждым годом все меньше и меньше, потому что вся индустрия работает на облегчение труда разработчика, на высокоуровневые языки с автоматической сборкой мусора, а значит углубленные знания по предмету ему ни к чему.
ммм. Имхо тут несколько тезисов:
- разделение на системное программирование и прикладное
- в прикладном действительно, сборка мусора, декларативное управление транзакциями, стримы и реактивное программирование (как поиск пути), вёрстка в ГУИ десктопа(Qt).
- системное для понимающих и самое главное умеющих)
Я бы так делил книги.
IMHO
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39831899
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CerebrumКакая конкретно область разработки вас интересует ?По базовому современному C++ и STL (зацепила ваша фраза про *.def-файлы, я на C++ перебрался недавно, разрабатывал на С и С++ лет 15-20 назад, еще под DOS и Win 3.0, про новый синтаксис прочитал, а вот про такие особенности не знаю где прочесть).
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39831926
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bk0010,

"Windows via C/C++" Рихтера
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39831938
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Доброго всем времени суток!
Возник небольшой вопрос.
Хочу при компиляции и сборке программы в зависимости от флагов включать или нет часть ресурсов в модуль.
Применяю в resources.rc

Код: plaintext
1.
2.
3.
4.
5.
#if defined(__FLAG__H)

... тут некоторые ресурсы

#endif 



Но несмотря на то, что хедер файл, в которых флаг определен
Код: plaintext
1.
2.
3.
#ifndef __FLAG__H
#define __FLAG__H
#endif


включен, в итоге ресурсы не попадают в сборку.
Линкер их не видит.
Что делаю не так?
Можно строить ресурсные файлы на лету, совершенно любыми средствами, например - bat - сценарии запускать.
https://docs.microsoft.com/ru-ru/visualstudio/ide/reference/pre-build-event-post-build-event-command-line-dialog-box?view=vs-2019
Построил, откомпилировал, затем проект билдится.
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39831969
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CerebrumЕсли раньше на полках стояли Рихтер, Фэнь Юань, С. Мейерс, Дон Бокс, Кит Браун, Реймонд Чэн, Ларри Остерман и пр. То сейчас ты можешь найти книгу по разработке по огромному системному или прикладному API, в которой от силы 300-400 страниц, причем большая часть из них это картинки на полстраницы. Не знаю может мне так не везет с этим. Если я нахожу в сети книгу по интересующей меня теме и в ней менее 500 страниц, то я автоматически пропускаю ее. Ну не может книга по серьезному вопросу быть уровня галлопом по европам. Берешь книгу по Vulkan API или геймдеву, а в ней от силы 400 страниц (вычесть оглавление, вступление, картинки и прочее не относящееся к непосредственному коду, то от силы там оказывается страниц 300) - просто курам на смех. По Active Directory/LDAP вообще практически ноль. Единственная известная мне более менее нормальная книга Gil Kirkpatrick - Active Directory Programming, которой нормального скана вообще по моему не существует.. Если у кого-то есть, поделитесь, пожалуйста.
как тяжко вам, виндузятникам, живётся

у меня опыт другой:
если страниц больше 300, то там воды половина (в лучшем случае)
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39831970
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и вспомнилось, отсюда :
авторПредыдущий оратор, который убеждал нас пользоваться библиотекой Microsoft Foundation Class (MFC), сказал нам, что поддержка OLE в MFC "включает 20000 строк кода, _необходимых_ для
каждого базового приложения OLE 2.0". Аудитория была ошеломлена не полезностью MFC, а тем фактом, что для написания базового приложения OLE 2.0 требуется 20000 строк кода.
Любой интерфейс такой сложности таит в себе изъян. Следующие несколько правил используют OLE для показа характерных проблем, но не думайте, что проблема запутанности характерна лишь
для Microsoft - она свойственна всей отрасли.
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39831974
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cerebrumbk0010,
"Windows via C/C++" РихтераСпасибо
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39831984
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухкак тяжко вам, виндузятникам, живётся

Вулкан на ликуксе от вуулкана в винде что ли отличаются?
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39831996
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилполудухкак тяжко вам, виндузятникам, живётся

Вулкан в линуксе от вулкана в винде чтоли отличаются?
учитывая, что он идёт как "убийца DirectX", чтобы на линухе нормально игры ходили, можно подумать, что нет
но в винде много чего реализовано иначе, чем в линухах (со знаком минус конечно же)
shared memory, tcp/ip, hdd i/o, итд
так что различия будут, как ни крути
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39832019
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно преимущества Вулкана будут раскрыты только для новых игр.

Что делать с кучей замечательных (реально!) legacy игр, которые изначально были написаны под DirectX?
Переписать их под Вулкан? Да кто это будет делать? И за какое время. DirectX хорош хотя-бы тем
что под него эти игры существуют.
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39832063
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так выйдет следующая версию под вулкан и всех дел
всё упирается лишь в % аудитории линуха
если пирог мал, он не интересен игроделам
а если велик, то они горы свернут
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39832081
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понимаю щас есть несколько целевых игровых платформ.
- PS4
- Xbox
- PC (который уже все меньше и меньше используется как платформа для игр)
- Android, (TV-приставки, телефоны и планшеты)
- Nindendo Wii
- (прочее. что я забыл)

И если какая-то солидная игро-контора создаёт продукт - она скорее всего портирует
код для максимального числа платформ.

Кто тут в топике игроделы? Расскажите как у вас там.
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39832083
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все конечно замечательно, но один хрен не видит он ресурсы, хотя везде проставил.
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39832084
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНасколько я понимаю щас есть несколько целевых игровых платформ.
- PS4
- Xbox
- PC (который уже все меньше и меньше используется как платформа для игр)
- Android, (TV-приставки, телефоны и планшеты)
- Nindendo Wii
- (прочее. что я забыл)

И если какая-то солидная игро-контора создаёт продукт - она скорее всего портирует
код для максимального числа платформ.

Кто тут в топике игроделы? Расскажите как у вас там.
Баловался одно время с Unity 3D. Так вот она может под все указанные платформы генерить игру. Вдобавок еще и под iOS. Размер программы получается конечно не оптимальный, но все работает.
...
Рейтинг: 0 / 0
VS2017 команда препроцессора в файле ресурсов
    #39832087
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ох. Про iOs забыл.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / VS2017 команда препроцессора в файле ресурсов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]