|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.12.2010, 14:02 | #1 |
Пользователь
Регистрация: 08.02.2010
Сообщений: 64
|
TSream из DLL в программу.
Здравствуйте.
Есть DLL и в ней картинки, звуки, файлы. Нужно в приложение загрузить определённые данные. Например указываю имя картинки в ресурсах DLL ('BG_0'), эти данные через функцию отправляю в DLL, а в качестве результата должен быть ресурс, т.е. картинка. Которую через TMemoryStream или через LoadFromStream загрузить куда нужно. Сразу говорю, что в приложении не могу использовать ресурсы, как бы я этого ни хотел, но прога должна быть не большого размера. А DLL-ки наверно будут более 50Мб Я пробовал TSream, TMemorySream передавать, всегда выдаёт ошибку доступа к памяти. Подскажите как правильно передать данные. Код DLL Код:
Код:
обратите внимание на строку в DLL Result.SaveToFile('c:\12.png'); Картинка сохраняется. |
13.12.2010, 14:18 | #2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
1. функции в DLL и основной программе должны иметь идентичные описания (включая stdcall и прочие модфикаторы).
Код:
3. зачем нужна небольшая программа если рядом с ней будет лежать огромный файл ресурсов. К тому же использующая раннее связывание (external 'D:\ImageModul.dll') , так что программа без файла ресурсов не запустится.
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 13.12.2010 в 14:23. |
13.12.2010, 14:31 | #3 |
Пользователь
Регистрация: 08.02.2010
Сообщений: 64
|
да вроде читал, но .... как-то глухо, там не сказано как вызовы делать.
stdcall; дописал в DLL-ке, но ошибка сохранилась. external я использовал для расширения, вдруг загрузится. P.S. так то если нет файла ресурсов, то прога Обязана не запускаться, там даже есть защита по Хэш, если DLL изменится прога уже должна начать паниковать. Последний раз редактировалось Eminem; 13.12.2010 в 14:35. |
13.12.2010, 14:41 | #4 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
вопрос об уменьшении веса программы при раздувании сопутствующих обязательных файлов(DLL) отается открытым. Ведь общий(суммарный) объем никуда не делся. фа
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 13.12.2010 в 14:44. |
|
13.12.2010, 14:52 | #5 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
ТС, может проще в самой программе грузить эти ресурсы из ДЛЛ, чем писать экспортные велосипеды? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
13.12.2010, 15:02 | #6 |
Пользователь
Регистрация: 08.02.2010
Сообщений: 64
|
Может и проще, задумка была грузить по функции, но я же не смогу запретить использование этих рес-в (в ДЛЛ) стандартным Виндусовским путём другими пользователями.
|
13.12.2010, 15:05 | #7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
ну начнем с того что у вас все равно есть ресурсы, так что разница?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
13.12.2010, 15:07 | #8 |
Пользователь
Регистрация: 08.02.2010
Сообщений: 64
|
ну да
А как из длл-ки загрузить ресурс... я такое еще не пактиковал. обычно всё из памяти брал. |
13.12.2010, 15:07 | #9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
В такой ситации, когда огромный ресурс и требования на размеры exe наверно нужно создать своими средствами файл для хранения картинок и прочего , а в основной программе модуль для поиска по ключу информации в этом файле и считывания ее. Возможно где-то в природе и компоненты нарисованы для этого
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
13.12.2010, 15:12 | #10 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Добавление DLL компоненита в программу | ЖенёкСупер | Общие вопросы Delphi | 8 | 08.08.2010 20:20 |
Перенос формы из dll-ки в программу | Greek9000 | Общие вопросы Delphi | 4 | 22.12.2009 18:19 |
Передать строки из dll в программу | 856100 | Общие вопросы Delphi | 6 | 03.08.2009 00:37 |
Вынос компонентов программы (которые делфи всталяет в каждую программу) из проги в dll | GanGSISoft | Общие вопросы Delphi | 17 | 02.07.2009 17:24 |
как из dll передавать данные в основную программу? | andrey4623 | Общие вопросы Delphi | 5 | 06.08.2007 10:15 |