Подтвердить что ты не робот

Создание файлов .cpp из .h файлов visual studio

Я использую Visual Studio 2008, и мне было интересно, можно ли создавать файлы .cpp, учитывая файлы заголовков.

Итак, если у меня есть файлы .h с классом и функциями, он может создать файл кода со всеми функциями, введенными с пустым телом

4b9b3361

Ответ 1

Вы должны проверить надстройку Visual Assist X для Visual Studio. Он имеет множество функций.

Ответ 2

Ярлык: alt+shift+f10 (VS2015)

Я искал это более 10 лет, много раз говорил, что ничего подобного не существует, и что нужно как-то использовать внешние инструменты, чтобы получить эту базовую функциональность.

... Теперь я наконец нашел что-то полезное.

Выделите имя класса в файле .h и с помощью этого ярлыка сделайте intellisense сгенерируйте соответствующие определения (также создайте файл .cpp, если он не создан).

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

Я абсолютно не могу поверить, насколько это неожиданно улучшило производительность (прощай ручную скопированную пасту!). И я нахожу это совершенно шокирующим, как я никогда не видел/не упоминал об этом, даже в Stack Overflow, вплоть до этого момента.

Наслаждайтесь новыми способностями и распространяйте слово!

Revolution

Ответ 3

Вы можете сказать Project → Add Class, но это только делает основы. Я не думаю, что вы можете сделать (пока) то, что вы предлагаете, но это было бы действительно потрясающе, и нет причин (я могу думать), почему вы не можете.

Ответ 4

Попробуйте AtomineerUtils addin.

Он не будет делать весь заголовок, но может преобразовать одно объявление заголовка метода в реализацию в связанном исходном файле. Он добавляет в пространство имен/пространства имен по мере необходимости, по возможности реализует реализацию по умолчанию (например, return (NULL)) и добавляет Doc-комментарий Doxygen или DocXml, включающий и переносящий текст комментария из заголовка в качестве краткого описания if доступны.

Ответ 5

Вы ищете что-то, чтобы обрабатывать партии файлов заголовков, например, для создания генератора кода, или это одно время, когда вы создаете новый класс?

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

Плохая часть - вы можете так же сумасбродить, как хотите, но это похоже на то, что вы будете довольны базовой функциональностью... Я бы подумал только о создании макроса, чтобы вы могли создать ToolBar Кнопка, и если вы нажмете ее, когда загрузится файл заголовка, он будет копировать его и (создайте .cpp, если он не существует), сканируйте .cpp, пропустив любые методы, которые могут уже существовать. Это также даст вам возможность добавлять новые функции в классы, а затем в одном движении создавать все тела методов.

Возможно, вы можете связаться со мной, и мы увидим, согласны ли наши два плана. Я вижу огромную потребность в этом сам... Просто FYI; как я в настоящее время справляюсь с этим...

Я создаю свой .H файл, затем скопирую весь заголовок в файл .CPP и вставляю его. Затем запускает hackin 'и slashin' в тексте, избавляясь от всех публичных:, private: protected: lines, class {} line и т.д. Затем я копирую имя класса вместе с оператором сферы в буфер обмена и начинаю спускать экран, вставляя его перед всеми методами (функциями). Затем выполните поиск/замену на ; с помощью \r\n {\ r\n}\r\n "... Кроме того, какая бы еще небольшая очистка я может сделать...

Используя этот метод, я теряю пару ключевых вещей. Один из них - вышеупомянутый Doxygen или другой тип комментариев (если я пишу классы API, это FAR более важно, чем если бы я просто писал какой-то класс для чего-то, и тогда я бы поставил большую часть комментариев в FlowerBox, или еще лучше, напишите код для самостоятельного комментирования.), и я не получаю автоматические возвращаемые значения, или даже просто выставляю утверждения, которые бросают какое-то исключение "NotImplemented".

Затем настало время начать писать код класса.:)

Как Ed S. упомянул, что вы программист, поэтому вы МОЖЕТЕ писать это самостоятельно, и если это ваш план, пусть я знаю, может быть, я могу поделиться некоторыми из моего существующего кода, который может помочь вам, и мы оба выиграем от результата.

Надеюсь, я не нарушу никаких правил SO здесь, отправив этот ответ, так что, если я, мне очень жаль, и я буду рад удалить его или администратор удалит это сообщение.

Надеюсь, что это поможет, и, возможно, даже даст вам некоторые идеи.