Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / VS2017 команда препроцессора в файле ресурсов / 25 сообщений из 26, страница 1 из 2
28.06.2019, 13:20
    #39831626
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VS2017 команда препроцессора в файле ресурсов
Доброго всем времени суток!
Возник небольшой вопрос.
Хочу при компиляции и сборке программы в зависимости от флагов включать или нет часть ресурсов в модуль.
Применяю в 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
28.06.2019, 13:35
    #39831636
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VS2017 команда препроцессора в файле ресурсов
Ресурсные файлы и заголовки обрабатываются несколько в "упрощенном виде" нежели чем те файлы, в которых содержится непосредственный код С/С++.

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

В принципе, любые файлы можно менять, привязав их к определенным директивам препроцессора. Просто удобнее менять настройки через указание конкретной конфигурации проекта (Release/Debug/Release with Flags On/Off/Debug with Flags On/Off и тд), так вы не ошибетесь, какую define-переменную(ые) нужно использовать и что у вас собирается в данный конкретный момент. А менять ручками, если много где надо менять можно и забыть и ошибиться.
...
Рейтинг: 0 / 0
28.06.2019, 14:46
    #39831680
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VS2017 команда препроцессора в файле ресурсов
CerebrumSQL2008А файл *.def (у меня DLL-ка итоговая сборка) можно как-то тоже менять?
затрудняюсь тут что-то подсказать, тк никогда не пользовался def файлами для линковки, поскольку их ни в одном более менее современном букваре использовать не советуют уже наверное лет 10-15.
Это Autodesk API и могу играть только по их правилам :).
В принципе можно менять вручную, так как я увижу если что не так.
Итоговая DLL будет называться иначе. При тестировании ресурсы не подтянутся.
Вопрос закрыт. Просто подумал, что можно в одном месте поменять и все.
В любом случае спасибо.
...
Рейтинг: 0 / 0
28.06.2019, 17:00
    #39831728
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VS2017 команда препроцессора в файле ресурсов
В 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
28.06.2019, 18:26
    #39831763
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VS2017 команда препроцессора в файле ресурсов
White Owl, спасибо, попробую.

Начинал изучение С++ с Borland 4, так как были библиотеки OWL (Object Windows Library).
Что то типа Microsoft MFC.
Просто увидел ник и вспомнил :), знаю, что это "белая сова" если что.
...
Рейтинг: 0 / 0
28.06.2019, 18:27
    #39831764
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VS2017 команда препроцессора в файле ресурсов
так там были библиотеки
...
Рейтинг: 0 / 0
28.06.2019, 20:42
    #39831807
bk0010
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VS2017 команда препроцессора в файле ресурсов
Cerebrumзатрудняюсь тут что-то подсказать, тк никогда не пользовался def файлами для линковки, поскольку их ни в одном более менее современном букваре использовать не советуют уже наверное лет 10-15.А что у вас идет за "современный букварь"? Не в плане оспорить утверждение, а для получения названия книги.
...
Рейтинг: 0 / 0
28.06.2019, 22:02
    #39831816
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VS2017 команда препроцессора в файле ресурсов
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
28.06.2019, 22:35
    #39831820
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VS2017 команда препроцессора в файле ресурсов
CerebrumХорошей литературы по прикладному использованию языка с каждым годом все меньше и меньше, потому что вся индустрия работает на облегчение труда разработчика, на высокоуровневые языки с автоматической сборкой мусора, а значит углубленные знания по предмету ему ни к чему.
ммм. Имхо тут несколько тезисов:
- разделение на системное программирование и прикладное
- в прикладном действительно, сборка мусора, декларативное управление транзакциями, стримы и реактивное программирование (как поиск пути), вёрстка в ГУИ десктопа(Qt).
- системное для понимающих и самое главное умеющих)
Я бы так делил книги.
IMHO
...
Рейтинг: 0 / 0
29.06.2019, 17:14
    #39831899
bk0010
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VS2017 команда препроцессора в файле ресурсов
CerebrumКакая конкретно область разработки вас интересует ?По базовому современному C++ и STL (зацепила ваша фраза про *.def-файлы, я на C++ перебрался недавно, разрабатывал на С и С++ лет 15-20 назад, еще под DOS и Win 3.0, про новый синтаксис прочитал, а вот про такие особенности не знаю где прочесть).
...
Рейтинг: 0 / 0
29.06.2019, 18:50
    #39831926
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VS2017 команда препроцессора в файле ресурсов
bk0010,

"Windows via C/C++" Рихтера
...
Рейтинг: 0 / 0
29.06.2019, 19:29
    #39831938
ёёёёё
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VS2017 команда препроцессора в файле ресурсов
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
29.06.2019, 22:07
    #39831969
полудух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VS2017 команда препроцессора в файле ресурсов
CerebrumЕсли раньше на полках стояли Рихтер, Фэнь Юань, С. Мейерс, Дон Бокс, Кит Браун, Реймонд Чэн, Ларри Остерман и пр. То сейчас ты можешь найти книгу по разработке по огромному системному или прикладному API, в которой от силы 300-400 страниц, причем большая часть из них это картинки на полстраницы. Не знаю может мне так не везет с этим. Если я нахожу в сети книгу по интересующей меня теме и в ней менее 500 страниц, то я автоматически пропускаю ее. Ну не может книга по серьезному вопросу быть уровня галлопом по европам. Берешь книгу по Vulkan API или геймдеву, а в ней от силы 400 страниц (вычесть оглавление, вступление, картинки и прочее не относящееся к непосредственному коду, то от силы там оказывается страниц 300) - просто курам на смех. По Active Directory/LDAP вообще практически ноль. Единственная известная мне более менее нормальная книга Gil Kirkpatrick - Active Directory Programming, которой нормального скана вообще по моему не существует.. Если у кого-то есть, поделитесь, пожалуйста.
как тяжко вам, виндузятникам, живётся

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

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

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

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

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

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

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

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


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