FAQ:WinAPI VCPP:скопировать класс из одного проекта в другой
Как мне скопировать класс из одного проекта в другой? Код класса находится в файлах проекта в виде исходников.
Скажем, нам надо скопировать класс CXx.
1) Чаще всего весь код класса CXx расположен в 2 файлах:
Xx.h | - заголовочный файл |
Xx.cpp | - файл реализации |
В этом случае можно:
а) Просто скопировать данные файлы из папки первого проекта в папку второго, затем, открыв проект назначения, добавить файлы в дерево проекта.
б) Найти класс в дереве классов первого проекта, нажать на класс правой кнопкой мыши и добавить в галерею классов. Затем открываем второй проект и выполняем: Project->Add To Project->Components And Controls. Ищем там папку с названием, как у проекта-источника, и в этой папке находим файл "Xx.ogx". Вставляем этот "компонент" в проект.
2) Случай, когда класс - производный от CDialog и имеет ресурс-диалог. Самый приятный вариант - выполнить пункт 1б. Ресурс диалога скопируется автоматом и при этом, корректно будут выбраны числовые значения для идентификаторов.
3) Если, кроме всего прочего, для работы класса требуются другие файлы, подключаемые при помощи "#include", то эти файлы просто копируем из папки в папку, а затем включаем в дерево проекта.
4) Если в классе используются другие ресурсы (иконки, битмапы и прочее), копируем эти ресурсы перетаскиванием файлов, или через export/import (правой кнопкой мыши по ресурсу в дереве проекта).
Примечание:
После копирования класса откомпилируйте проект, определите и исправьте все не стыковки. Например, скорее всего, будет ругань на файл "имя_исходного_проекта.h" - переправить на название проекта назначения. В файлах, где будут не найдены идентификаторы ресурсов, возможно, достаточно будет включить в начале файла строку #include "Resource.h". Рекомендуется удалить из папки проекта назначения файл *.clw, затем в проекте нажать Ctrl+W, OK, OK. Тем самым файл дерева классов будет создан заново.