Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Компиляция rc-файлов

284
19 сентября 2005 года
michael_is_98
587 / / 25.02.2005
У меня следуюшая ситуация:
-есть проект, в котором для диалоговых окон используется один *.rc-файл
-в этот проект хочу подключить свой компонент, в котором есть свое окно с меню и диалогом. Т.е. для этого компонента (класса) есть свой файл *.rc.
Как теперь все скомпилировать?
Ведь в проекте может быть не больше одного *.rc-файла.
292
19 сентября 2005 года
Matush
726 / / 14.01.2004
ну, береш ручками копируешь все нужное из одного ресурса в другой.

P.S. Может можно как и иначе
3
19 сентября 2005 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by michael_is_98

Ведь в проекте может быть не больше одного *.rc-файла.


Может быть и больше одного файла.

284
19 сентября 2005 года
michael_is_98
587 / / 25.02.2005
Цитата:
Originally posted by Green
Может быть и больше одного файла.



можно объяснить подробнее.

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

Как теперь задействовать этот компонент в виде класса, который мы, предположим, создали?

По идее, мы добавляем в тот проект, где мы хотим использовать этот компонент, один файл component.cpp, прописываем #include <component.h>,
а затем можем создавать экземпляры этого класса с помощью операции new.

Но как скомпилируется ресурс, ведь он должен относиться к компоненту (классу), а не к проекту, в котором уже может быть свой *.rc файл?

3
19 сентября 2005 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by michael_is_98

По идее, мы добавляем в тот проект, где мы хотим использовать этот компонент, один файл component.cpp, прописываем #include <component.h>,
а затем можем создавать экземпляры этого класса с помощью операции new.

Но как скомпилируется ресурс, ведь он должен относиться к компоненту (классу), а не к проекту, в котором уже может быть свой *.rc файл?


Ну добавь к проекту ещё один .rc файл.
Обычно дефолтовый .rc называется имя_проекта.rc,
назови свой component.rc и добавь его к проекту.
Не забудь, что вместе с rc создается еще и соотв. .h файл.

284
20 сентября 2005 года
michael_is_98
587 / / 25.02.2005
Цитата:
Originally posted by Green
Ну добавь к проекту ещё один .rc файл.
Обычно дефолтовый .rc называется имя_проекта.rc,
назови свой component.rc и добавь его к проекту.
Не забудь, что вместе с rc создается еще и соотв. .h файл.


Но VC не дает включать в проект несколько *.rc-файлов (даже с разными именами), говорит
Multiple .rc files exist in this project. Only one can be marked as included in the build.
У меня VC5.0.
Неудобно конечно переносить все в один *.rc-файл. Есть ли другие способы разделить ресурсы компонента и проекта?

292
20 сентября 2005 года
Matush
726 / / 14.01.2004
Цитата:
Originally posted by michael_is_98
Но VC не дает включать в проект несколько *.rc-файлов (даже с разными именами), говорит
Multiple .rc files exist in this project. Only one can be marked as included in the build.
У меня VC5.0.
Неудобно конечно переносить все в один *.rc-файл. Есть ли другие способы разделить ресурсы компонента и проекта?


У меня на 6 VC, аналогично. Проблему решил следующим образом. Назвал второй ресурс как Resource2.rc и Resource2.h, в Resource2.rc исправил инклюд на нужній мне (то-есть Resource2.h) и уже в самой проге пишу #include "Resource2.h" и все работает.

292
20 сентября 2005 года
Matush
726 / / 14.01.2004
Цитата:
Originally posted by Matush
и все работает.


Стоп. Не работает :(

292
20 сентября 2005 года
Matush
726 / / 14.01.2004
ИТОГО:
инфа из МСДН:
To include resource files that will be added to your project at compile time

1.Place the resources in a resource script file with a unique filename. (Do not use projectname.rc, since this is the filename used for the main resource script file.)

2.From the View menu, choose Resource Includes.

3.In the Compile-time directives box, use the #include compiler directive to include the new resource file in the main resource file in the development environment.
The resources in files included in this way are made a part of your executable file at compile time. They are not directly available for editing or modification when you are working on your project’s main .rc file. You need to open included .rc files separately.

4. Click OK.

Сделал так - все ок, смотри аттач.
3
20 сентября 2005 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by michael_is_98
Но VC не дает включать в проект несколько *.rc-файлов (даже с разными именами), говорит
Multiple .rc files exist in this project. Only one can be marked as included in the build.
У меня VC5.0.
Неудобно конечно переносить все в один *.rc-файл. Есть ли другие способы разделить ресурсы компонента и проекта?


Да, припоминаю такие траблы, но сейчас я использую 7.0
Впредь, лучше сразу указывать версию инструмента.

Ну в принципе, Matush тебе дал исчерпывающий ответ.

Еще один нюанс: если ты пишешь некий обобщенный код, то может быть смысл заключить его в .lib ?

284
20 сентября 2005 года
michael_is_98
587 / / 25.02.2005
Цитата:
Originally posted by Green
Да, припоминаю такие траблы, но сейчас я использую 7.0
Впредь, лучше сразу указывать версию инструмента.

Ну в принципе, Matush тебе дал исчерпывающий ответ.

Еще один нюанс: если ты пишешь некий обобщенный код, то может быть смысл заключить его в .lib ?


А что в 7.0 это решается по-другому?

3
20 сентября 2005 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by michael_is_98
А что в 7.0 это решается по-другому?


В 7.0 можно сделать .rc более одного

284
22 сентября 2005 года
michael_is_98
587 / / 25.02.2005
Цитата:
Originally posted by Green
В 7.0 можно сделать .rc более одного


Значит нужно посмотреть VC7. Сколько занимает его установленная версия?

3
22 сентября 2005 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by michael_is_98
Значит нужно посмотреть VC7. Сколько занимает его установленная версия?


Все зависит от параметров установки. В среднем около 1Gb.

284
23 сентября 2005 года
michael_is_98
587 / / 25.02.2005
Цитата:
Originally posted by Green
Все зависит от параметров установки. В среднем около 1Gb.


Я думаю без апгрейда не поставишь такого монстра (333 Celeron у меня). Полный VC5 занимает почти в 3 раза меньше на диске.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог