Static Lib & Resources
От: A.A.L. Украина  
Дата: 28.09.06 10:05
Оценка:
Есть либа, к приложению линкуется через #pragma comment(lib, .....)
В ней экстерновый класс диалога, который создается на основе ресурса, ресурс описан в самой либе в *.rc.
При создании окна (функция Create вызывается внутри либы)Вылитаю по ASSERT — не находится нужный ресурс ????
Как сделать так, что бы ресурсы моей либы загружались?


Просьба, не посылать в поиск.
Я там уже порылась. и не нашла ничего интеерсного.
Если верить MSDN, то есть какие-то настройки проекта, где можно задать список экспортируемых/импортируемых ресурсов.
Но я эти настройки найти не смогла
Re: Static Lib & Resources
От: Ulfur Россия  
Дата: 28.09.06 10:07
Оценка:
Здравствуйте, A.A.L., Вы писали:

AAL>Есть либа, к приложению линкуется через #pragma comment(lib, .....)

AAL>В ней экстерновый класс диалога, который создается на основе ресурса, ресурс описан в самой либе в *.rc.

Нужно указывать instance модуля из которого загружаем разные ресурсы, в т.ч. диалога.
Re[2]: Static Lib & Resources
От: LuciferMoscow Россия  
Дата: 28.09.06 10:30
Оценка:
Здравствуйте, Ulfur, Вы писали:

U>Здравствуйте, A.A.L., Вы писали:


AAL>>Есть либа, к приложению линкуется через #pragma comment(lib, .....)

AAL>>В ней экстерновый класс диалога, который создается на основе ресурса, ресурс описан в самой либе в *.rc.
U>Нужно указывать instance модуля из которого загружаем разные ресурсы, в т.ч. диалога.
Это либа, у нее инстанса не бывает

Варианты решения проблемы:
1. Сделать из либы полноценную dll
2. Вместе с либой делать ресупсную dll
3. Вкомпилить ресурсы dll в "родительский" exe\dll(такое вообще возможно?! )
Re: Static Lib & Resources
От: Pavel Dvorkin Россия  
Дата: 28.09.06 10:36
Оценка:
Здравствуйте, A.A.L., Вы писали:

AAL>Есть либа, к приложению линкуется через #pragma comment(lib, .....)

AAL>В ней экстерновый класс диалога, который создается на основе ресурса, ресурс описан в самой либе в *.rc.
AAL>При создании окна (функция Create вызывается внутри либы)Вылитаю по ASSERT — не находится нужный ресурс ????
AAL>Как сделать так, что бы ресурсы моей либы загружались?

Боюсь, что никак. Ресурсы в статическую библиотеку поместить можно, а вот использоваться они, похоже, не могут. Я недавно участвовал в обсуждении этого, но ни до чего не добрались

http://rsdn.ru/Forum/Message.aspx?mid=1932646&only=1
Автор:
Дата: 02.06.06


AAL>Просьба, не посылать в поиск.

AAL>Я там уже порылась. и не нашла ничего интеерсного.
AAL>Если верить MSDN, то есть какие-то настройки проекта, где можно задать список экспортируемых/импортируемых ресурсов.

Если можно, ссылку на MSDN. Мне самому это интересно — зачем они там, если их нельзя использовать...
With best regards
Pavel Dvorkin
Re[2]: Static Lib & Resources
От: A.A.L. Украина  
Дата: 28.09.06 11:02
Оценка:
PD>Если можно, ссылку на MSDN. Мне самому это интересно — зачем они там, если их нельзя использовать...

ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_vssoln/html/c6ff1a87-f060-4ff1-90b8-ed4fbe458362.htm — это та статейка, которую я так и не поняла.
На данный момент подсказали решение такого рода:
В файле *.rc2 — приложения, сделать #include .rc — файла библиотеки

Это не совсем то, чего хотелось. Но временно устроит.
При этом надо бдительно следить за ID-шниками ресурсов
Re: Static Lib & Resources
От: Conr Россия  
Дата: 28.09.06 11:12
Оценка:
Здравствуйте, A.A.L., Вы писали:

AAL>Есть либа, к приложению линкуется через #pragma comment(lib, .....)

AAL>В ней экстерновый класс диалога, который создается на основе ресурса, ресурс описан в самой либе в *.rc.
AAL>При создании окна (функция Create вызывается внутри либы)Вылитаю по ASSERT — не находится нужный ресурс ????
AAL>Как сделать так, что бы ресурсы моей либы загружались?
К сожалению никак. Единственный, известный мне, вариант поместить диалог в либу — это обойтись вообще без ресурсов. Сделать это можно с помошью DialogBoxIndirect и DLGTEMPLATE + DLGITEMTEMPLATE. Примеры есть здесь
Автор: Sashko
Дата: 27.01.02
и здесь
Re[3]: Static Lib & Resources
От: Pavel Dvorkin Россия  
Дата: 28.09.06 11:32
Оценка:
Здравствуйте, A.A.L., Вы писали:


PD>>Если можно, ссылку на MSDN. Мне самому это интересно — зачем они там, если их нельзя использовать...


AAL>ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_vssoln/html/c6ff1a87-f060-4ff1-90b8-ed4fbe458362.htm — это та статейка, которую я так и не поняла.


Да нет там ничего интересного. Просто как добавить что-то во встроенные (embedded) ресурсы приложения. Embedded ресурсы — это ресурсы, которые прямо включаются в resx файл, вместо того, чтобы на них там была ссылка.

Embedded resources are the best choice if you need to share application resource (.resx) files between multiple projects. For example, if you have a common resource file that contains your company's logos, trademark information, and such, using embedded resources means you only have to copy the .resx file and not the associated resource data files.

Linked resources are stored as files within the project; during compilation the resource data is taken from the files and placed into the manifest for the application. The application's resource file (.resx) stores only a relative path or link to the file on disk.

И вообще это не наша тематика. .resx — это из оперы ".Net".

AAL>На данный момент подсказали решение такого рода:

AAL>В файле *.rc2 — приложения, сделать #include .rc — файла библиотеки

Да, конечно, можно так.
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.