powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вырезать часть кода из проекта и перенести в новый
18 сообщений из 18, страница 1 из 1
Вырезать часть кода из проекта и перенести в новый
    #39088783
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть большой проект Dll с сотнями экспортируемых функций. Но мне для работы нужно только десяток.
Хочу вырезать их и перенести в новый проект dll. Существует ли какой-то инструмент, который позволяет отследить связи от экспортируемых функций, до всех которые они используют в работе. Или тут только полное изучение работы проекта и ручной перенос кода?
...
Рейтинг: 0 / 0
Вырезать часть кода из проекта и перенести в новый
    #39088807
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вырезаешь экспортируемые, делаешь новый проект, компилируешь, получаешь список не
найденных символов, находишь и копируешь и их тоже, повторяешь пока не соберётся.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вырезать часть кода из проекта и перенести в новый
    #39088825
wst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Инструменты существуют, но а) цены на них далеки от гуманных, б) анализ связей - лишь малая часть их функционала. Примеры - Understand от scitools или АИСТ от ЦБИ.
...
Рейтинг: 0 / 0
Вырезать часть кода из проекта и перенести в новый
    #39088892
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну можно карты сборки линкера вывести, там будут для каждого модуля импорты и экспорты.
Взять импорты всех модулей-клиентов и объединить в единый список, потом по этому списку извлекать код.
...
Рейтинг: 0 / 0
Вырезать часть кода из проекта и перенести в новый
    #39088894
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltЕсть большой проект Dll с сотнями экспортируемых функций. Но мне для работы нужно только десяток.
Хочу вырезать их и перенести в новый проект dll.


А в чём проблема использовать DLL целиком, в том виде, как он есть ?
"Хочу" -- это не техническая формулировка.
...
Рейтинг: 0 / 0
Вырезать часть кода из проекта и перенести в новый
    #39088969
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо
правильное решение - переработать проект, разделив его на несколько несвязанных библиотек. проблема от того, что нарушен single responsibility - билиотека отвечает за несколько областей.

также.
если не понятно, какие функции использует код... это запшок .
...
Рейтинг: 0 / 0
Вырезать часть кода из проекта и перенести в новый
    #39089062
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltЕсть большой проект Dll с сотнями экспортируемых функций. Но мне для работы нужно только десяток.
Хочу вырезать их и перенести в новый проект dll. Существует ли какой-то инструмент, который позволяет отследить связи от экспортируемых функций, до всех которые они используют в работе. Или тут только полное изучение работы проекта и ручной перенос кода?
Нужет тест который дёрнет десяток твоих функций и подтвердит что они работают в полной мере
в новом проекте.

Все умные инструменты по рефакторингу и extract method/procedure не гарантируют того что имплементация
перенесена успешно. Мир сложен и чуден и бывают всякие поздние варианты связывания, плагины и прочие
ленивые механизмы.
...
Рейтинг: 0 / 0
Вырезать часть кода из проекта и перенести в новый
    #39089250
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivА в чём проблема использовать DLL целиком, в том виде, как он есть ?
"Хочу" -- это не техническая формулировка.

Большой размер библиотеки, совершенно излишне таскать с собой мегабайты мертвого кода
...
Рейтинг: 0 / 0
Вырезать часть кода из проекта и перенести в новый
    #39089253
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltБольшой размер библиотеки
Сколько гигабайт?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вырезать часть кода из проекта и перенести в новый
    #39089255
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovСколько гигабайт?


Более 5 мегабайт в виде скомпилированной DLL. Программа ее использующая весит около 70 кб в экзешнике.
99% функций в DLL мне не нужны. Внутренний перфикционист протестует против такого расхода ресурсов.
Программа лучше будет выглядеть 70 кб EXE + (50-100 кб DLL)
...
Рейтинг: 0 / 0
Вырезать часть кода из проекта и перенести в новый
    #39089260
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eoltпротив такого расхода ресурсов
Каких ресурсов?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вырезать часть кода из проекта и перенести в новый
    #39089264
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovКаких ресурсов?


Дисковое пространство и оперативной памяти
...
Рейтинг: 0 / 0
Вырезать часть кода из проекта и перенести в новый
    #39089265
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltДисковое пространство и оперативной памяти
Оперативная память мёртвым кодом не занимается.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вырезать часть кода из проекта и перенести в новый
    #39089267
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovОперативная память мёртвым кодом не занимается.


Занимается. Когда EXE подгружает эту DLL через LoadLibrary, она целиком отображается на адресное пространство моего процесса.
99% кода мне не нужно.
...
Рейтинг: 0 / 0
Вырезать часть кода из проекта и перенести в новый
    #39089272
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovEoltДисковое пространство и оперативной памяти
Оперативная память мёртвым кодом не занимается.

Инициатива по рефакторингу мёртвого кода - вполне себе похвальна. Тут может
быть дело даже не столько в факте мёртвого кода сколько в усилиях по
его поддержке со стороны разработки. Так или иначе сорцы требуют
периодического просмотра глазами, участия в цикле компилляции e.t.c.
...
Рейтинг: 0 / 0
Вырезать часть кода из проекта и перенести в новый
    #39089284
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eoltона целиком отображается на адресное пространство моего процесса
На виртуальное адресное пространство. В физическую память код попадёт только когда начнёт
выполняться.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вырезать часть кода из проекта и перенести в новый
    #39089628
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltMasterZivА в чём проблема использовать DLL целиком, в том виде, как он есть ?
"Хочу" -- это не техническая формулировка.

Большой размер библиотеки, совершенно излишне таскать с собой мегабайты мертвого кода

Глупость.
...
Рейтинг: 0 / 0
Вырезать часть кода из проекта и перенести в новый
    #39089632
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltDimitry SibiryakovОперативная память мёртвым кодом не занимается.


Занимается. Когда EXE подгружает эту DLL через LoadLibrary, она целиком отображается на адресное пространство моего процесса.
99% кода мне не нужно.

Отображается -- не значит загружается и использует память.


Dimitry Sibiryakov тебе правильно говорит.
Ты занимаешься фигнёй.
Единственное оправдание таким действиям -- отсутствие занятости и/или обучение/накопление опыта.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вырезать часть кода из проекта и перенести в новый
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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