zHz00 Untitled

вторник, 11 июня 2019
23:59 Медведь в балалаечной шкуре
Для разных проектов у нас используются разные вижуал студии, от 2005 до 2017. Текущий проект сделан в 2005. Если то, что я опишу ниже, вы встречали в других версиях, сообщите, пожалуйста.

***

Когда первый класс включает в себя указатель на другой, а другой -- на первый, приходится пользоваться об'явлением класса "вперёд". А именно -- указать название класса вместо его настоящего об'явления (class CName1; ). Это должно работать как надо, но периодически возникают сбои, когда компилятор "не видит" второй класс. Обычно их удаётся победить, но сегодня я застрял.

Застрял до такой степени, что решил посмотреть, что выдаёт препроцессор. В настройках проекта можно задать "генерировать файлы препроцессора", что я и сделал. И о чудо -- модули по отдельности стали компилироваться, хотя раньше не компилировались! Это меня напрягло, поскольку мне не было смысла смотреть на результат препроцессора, если там всё хорошо. А когда всё плохо -- препроцессорных файлов нет.

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

ОКАЗАЛОСЬ

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

Я открыл один из препроцессорных файлов и стал искать упоминание нужного мне класса. Оно находилось, но слишком поздно. Я видел, что выше по тексту выше класс тоже упоминается. В общем в одно из наименований типа CName1 затесалась русская буква C. Когда я её исправил, всё заработало.

@темы: Программирование, Фейлы, Борьба с техникой

URL
китайский морковный напиток приятнее немецкого, хотя госп...
Блюли традиции. Чтили заветы предков. Крепили веру. Тольк...
ой-ей, кажется Тайсон хочет отгрызть Холливуду второе ухо...
О, этот образ мне привычен Безумно туп, но симпатичен :...
Ох и паршиво же, когда действительно близкому тебе челове...
утром лежала в постели обнимаясь с телефоном, переодическ...
Добавить комментарий

Расширенная форма

Подписаться на новые комментарии