|
8 / 8 / 2
Регистрация: 02.10.2014
Сообщений: 112
|
||||||||||||||||||||||||||
Вернуть TBitmap из .dll25.07.2016, 21:16. Показов 1262. Ответов 10
Метки нет (Все метки)
Доброго времени суток!
Столкнулся со странным глюком, и как обойти не знаю, точнее не понимаю, чего от меня хотят. Возможно кто то сталкивался. Есть dll собранная все все в том же RadStudio (10, ибо только там появилась поддержка Desktop Duplication API). Функции в dll объявлены следующим образом:
Но как только пытаюсь провернуть следующее:
Заранее спасибо!
0
|
||||||||||||||||||||||||||
| 25.07.2016, 21:16 | |
|
Ответы с готовыми решениями:
10
как вернуть HBITMAP у Graphics::TBitmap Вернуть HBITMAP из c++ dll Вернуть строку из .dll на С++ в программу на VB 6.0 |
|
Модератор
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
|
|
| 26.07.2016, 08:19 | |
|
Meoww, в последнем куске инициализация динамически созданным объектом не нужна - указатель все равно затрется после возврата из функции. Ошибка или в том что объект не возвращается или в конвертации - Вы пробовали приводить так обычный объект на своей стороне?
Добавлено через 1 минуту +а тот ли это класс? Не нужно ли указать Graphics:: ?
0
|
|
|
8 / 8 / 2
Регистрация: 02.10.2014
Сообщений: 112
|
|
| 26.07.2016, 08:40 [ТС] | |
|
Доброго утра. Класс тот - при указании Graphics:: ничего не меняется. Да, при использовании (не в dll) таким макаром отработано очень много - и всегда без ошибок. Если вы про эту иннициализацию (bitmap = new TBitmap; ) то конечно в коде ее нет - битмап создается один раз в начале.
В том то и дело что битмап возвращается, с хендлом и тд - абсолютно адекватный, насколько позволяют мои знания. Терзают меня смутные сомнения, что все это каким то макаром связанно с dll, а точнее с библиотекой vcl - очень уж она любит работать только в главном потоке. Не так много знаю, чтобы судить - пробую разобраться. Обидно, но блин в TImage как то выводит же.
0
|
|
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
||||||
| 26.07.2016, 08:41 | ||||||
|
Я обычно инициализирую битмап иначе:
0
|
||||||
|
8 / 8 / 2
Регистрация: 02.10.2014
Сообщений: 112
|
|||||||||||
| 26.07.2016, 08:51 [ТС] | |||||||||||
|
Прошу прощения за дубль - еще одна интерестность:
если в программе создается битмап один раз в начале, то
nick42 - спасибо) (также создаю битмап один раз в начале) не имеет значения какой битмап используется - вылетает. Я уже и через GDI с HBITMAP пробовал - то-же только в профиль
0
|
|||||||||||
|
Модератор
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
|
|
| 26.07.2016, 08:53 | |
|
Meoww, vcl не влияет хотя то что это битмап пикчи имаджа конечно заставляет работать с ним через синхронайз но не думаю что выбивает изза того что его нет
0
|
|
|
8 / 8 / 2
Регистрация: 02.10.2014
Сообщений: 112
|
|
| 26.07.2016, 09:02 [ТС] | |
|
Просто сталкивался с подобной "плавающей" ошибкой - тут на форуме есть топик - там именно с синхронизацией потока связанно, что к слову очень раздражает - сумасшедшая потеря времени. Оффтоп))) ддлка написанная на шарпе (используется тот же directX только managed), прикрученая ...эм) вообщем подключенная к проекту на с++ через костыль - работает. Но это же не вариант
0
|
|
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|||||||
| 26.07.2016, 09:22 | |||||||
0
|
|||||||
|
8 / 8 / 2
Регистрация: 02.10.2014
Сообщений: 112
|
|||||||||||
| 26.07.2016, 11:14 [ТС] | |||||||||||
|
Да это понятно. Все оно работает, пока находится внутри программы, а вот вынес в dll - проблема. Может и смирился бы - но в image же выводит, и вот при доступе к битам - ошибки.
Добавлено через 9 минут Вот так работает сохранение (понятно что память течет, и доступ к битам один черт не работает, но все же)
Что не так!?!?!
0
|
|||||||||||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
| 26.07.2016, 11:40 | |
|
А pBitmap = NULL после delete не поможет?
0
|
|
|
8 / 8 / 2
Регистрация: 02.10.2014
Сообщений: 112
|
|
| 26.07.2016, 11:57 [ТС] | |
|
Неа. Итак, к сожалению, кажется обнаружил очередной глюк. DLL была собрана в rad10 berlin, так как в предыдущих версиях попросту не было хедера DXGI1_2.h. А сам проект ведется, или точнее теперь уже велся, в rad8, из-за тормозов 10-ки на моем, далеко не самом слабом железе. Одним словом - пересобранный проект в rad10 berlin отлично работает, не вызывая никаких ошибок. Итог - очередной глюк.
Приношу свои извинения за беспокойство
0
|
|
| 26.07.2016, 11:57 | |
|
Помогаю со студенческими работами здесь
11
Возможно ли вернуть двухмерный массив строк из DLL функции написаной на C++ Tbitmap.create и Tbitmap.scanline Как вернуть параметр атрибута из сборки .dll?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит:
токи, напряжения и их 1 и 2 производные при t = 0;. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|