![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Форумчанин
Регистрация: 16.03.2013
Сообщений: 599
|
![]()
А почему бы не заюзать более свежие дельфи, от Embracadero? Там и компоненты посвежее, и совместимости все сразу есть с новыми виндами. ХЕ2 ломается без проблем.
alextrof94$gmail.com
|
![]() |
![]() |
![]() |
#12 | |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
![]()
Аватар, ваш способ не проканал:
битмап удаляется после B.ReleaseHandle; проверял с помощью SaveToFile, запущенных из библиотеки. до ReleaseHandle сохраняется корректный файл, после - файл пустой. в проге тот же результат - SaveToFile сохраняет пустой bmp... Пепел Феникса, никаких проблем )) специально проверил, все удаляется без ошибок. Цитата:
к д10 я привык, она мне как родная =) |
|
![]() |
![]() |
![]() |
#13 |
Форумчанин
Регистрация: 16.03.2013
Сообщений: 599
|
![]()
Ну если только так, просто не вижу смысла юзать Delphi 7 (2001), когда можно заюзать Delphi XE2 (2012), так же с WinXP|Win7-8, PS CS2 | PS CS5, притом что новые версии уже доказали стабильность и удобность.
alextrof94$gmail.com
|
![]() |
![]() |
![]() |
#14 |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
![]()
alextrof94, найти и скачать - дополнительная заморочка,
все никак руки не дойдут. за совет спасибо =) такс, друзья, а если передать в dll указатель на массив, функция в dll его заполнит - где он тогда будет лежать? ну полюбому же в проге, как нет то? я же передаю не объект какой-нибудь, а указатель на ячейку памяти! и это указатель на ячейку памяти, находящейся в программе, а не в библиотеке. да и не важно вообще, где эта память находится! какая бы функция его ни получила, и где бы она ни находилась - при разыменовании указателя работать она будет именно с той ячейкой, на которую ссылается указатель, правильно? |
![]() |
![]() |
![]() |
#15 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
![]()
Ну вот как-то так вроде заработало
Код:
Код:
Последний раз редактировалось Sibedir; 19.04.2013 в 06:53. |
![]() |
![]() |
![]() |
#16 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Да, сглупил в посте #8. Стоит так попробовать. Работает, но для dll не проверял
Код:
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#17 |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
![]()
Господа, всем спасибо, решил проблему сам.
Простенькая длл-ка эволюционировала в небольшой сервер. загрузка jpg в программе осуществляется в 3 этапа: 1. запускаем функцию длл CreateAndLoad(Path, var Width,Height):handle; она создает TJPEGImage, загружает файл, возвращает размеры изображения и хендл объекта - простой интегер 2. создаем в программе битмап и array of byte. длину массива ставим Width*Height*3 - (кол-во px * 3 цвета) просим длл заполнить этот массив ScanLine'ми изображения (передаем указатель на первую ячейку и handle изображения) 3. переписываем байты массива в ScanLine'ы битмапа - все! изображение загружено остается только удалить созданный в длл TJPEGImage, для этого делаем соотв. запрос, передавая handle, полученный в 1 этапе. благодаря посреднику в виде массива, наш целевой битмап не имеет никакого отношения к длл, поэтому с ним не возникает характерных проблем. длл в свою очередь так же живет своей жизнью, удаляет то что создает, делает не более того, что ее просят (не присваивает себе чужие объекты). Я создал TJPEGImage = class(TBitmap), в котором в процедуре LoadFromFile реализовано то, что описано выше. Эта система прошла свое боевое крещение и прекрасно себя показала! никаких ошибок, программа работает на ура. Дайте мне медаль! И можно мне вон тот пирожок с полки? p.s.: только что пришел домой с вечеринки по случаю моей грандиозной победы над таким скользким явлением как TJPEGImage |
![]() |
![]() |
![]() |
#18 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]()
я таки как и некоторы тут никак не могу понять - нафига тут длл ?
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
где хранятся настройки принтэра? | VAnj2607 | Помощь студентам | 6 | 07.05.2011 11:07 |
Ошибка при работе с DLL | _-Re@l-_ | Общие вопросы Delphi | 1 | 28.08.2010 20:55 |
Где хранятся настройки редактора VBA? | viter.alex | Microsoft Office Word | 5 | 04.10.2009 16:34 |
Где хранятся настройки Opera и MS Outlook? | Cannibal | Windows | 1 | 27.12.2008 17:52 |
Где хранятся драйвера? (windows vista) | Hallo | Свободное общение | 10 | 05.09.2007 07:47 |