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. Тем самым файл дерева классов будет создан заново.