Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Как загрузить файл ресурсов в DLL


Автор: SerK 19.6.2007, 19:19
Друзья! 
Про то как  излечь данные ресурсов из DLL  написано много, в вот как файл ресурсов
к DLL  подключить или в нее вставить я не нашел, кто знает подскажите, пожалуйста.
P.s. создавать файл ресурсов я умею, нужно только подключить к DLL .

Автор: jonie 19.6.2007, 19:26
ну так просто все.. 
1. создаешь DLL-ку
2. создаешь файл описания рессурсов (*.rc) вида
Код

RESNAME                 RCDATA                  "file.bin"

3. далее в билдере Project->Add To Project и выбираешь файл rc.
4. компилишь и радуешься......
---
я кста далек от билдера... разобрался минуты за 2....

Автор: Klin 19.6.2007, 22:26
SerK, такая тема http://forum.vingrad.ru/index.php?showtopic=149288&view=findpost&p=1120027 (да и не одна), элементарные тиаы (рисунок, значек и меню помойму smile ) можно добавить через меню проект->ресурсы.

Автор: SerK 20.6.2007, 07:15
Уважаемый Klin!
Спасибо за участие.
Вопрос мой сводился к тому, как подключить файл ресурсов к DLL,
а не как создать этот файл.  К сожалению, по вашей ссылке на тему я 
ответа не нашел.

Если файл ресурсов подключить как советовал Jonie

Цитата

3. далее в билдере Project->Add To Project и выбираешь файл rc.
4. компилишь и радуешься......


то этот файл просто подключается к  DLL или он запаковывается в библиотеку?
Вопрос для меня важен, ибо хотелося бы, чтобы этот файл не болтался,а  был спрятан.
И еще, нужно ли прописывать в самой DLL  какие-либо ссылки на файл ресурсов, ведь
данные из DLL потом нужно извлекать?

Автор: SenkraD 20.6.2007, 09:04
Цитата(SerK @  20.6.2007,  07:15 Найти цитируемый пост)
И еще, нужно ли прописывать в самой DLL  какие-либо ссылки на файл ресурсов, ведь
данные из DLL потом нужно извлекать?
нет.

А для извлечение ресурсов в C++ Builder есть класс TResourceStream + ко всему некоторые ресурсы (иконки, битмапы, курсоры, строки, звуки) можно использовать и без него - есть соответствующие функции WinAPI (LoadIcon, LoadBitmap, LoadCursor, PlaySound).

Вообщем, посмотри, почитай, появятся вопросы - спрашивай - поможем

Автор: SerK 1.7.2007, 18:56
jonie!
Почти две недели меня не было в городе, поэтому простите за 
запоздалую благодарность. 
С помощью вашего совета у меня все получилось:
Файл ресурсов помещается в DLL. 
Спасибо еще раз.

По этой теме есть еще вопрос
Друзья, суть вопроса вот в чем:

1. есть анимированный курсор - Сur.ani
2. помещаю его в файл ресурсов так:
  - в файле *.rc объявляю:
  #include "mystrtime.h"
 STRINGTABLE MOVEABLE DISCARDABLE
 BEGIN
 sCUR1 "КурсорАним"
 END
 CURANI CURSORANI "cursor.ani"

3. В файле "mystrtime.h" записываю:
  #define sCUR1 1001

4. Создаю файл ресурсов.
 
5. В программе :
  
Код

const crCURANI=1;
 //-----------------------------------------------
void __fastcall TForm2::FormCreate(TObject *Sender)
{
  HANDLE H;
  H=LoadLibraryA("MyDLL.dll");//дескриптор библиотеки
  if (H != 0)
   {Screen->Cursors[crCURANI]=LoadCursor(H,"CURANI ");
     FreeLibrary(H);}
 else
   {ShowMessage("Не удалось загрузить библиотеку \"MyDLL.dll\"");}
 
  Image1->Cursor=(TCursor)crCURANI;
}
//---------------------------------------------------


6. ...и ничего не происходит, то есть анимированный курсор не загружается в
 программу, и компилятор никаких ошибок не видит.
 
 В чем дело?
 
 
 


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)