Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2009, 12:25   #1
puga555
Пользователь
 
Регистрация: 12.11.2008
Сообщений: 12
По умолчанию Как передать какртинку и получить картику из dll?(она не в ресурсах)

Здравствуйте!
Есть программа стороннего разработчика, которая позволяет создавать для нее плагины в виде dll.Обмен данными между приложением и dll осуществляется через одну процедуру в dll и одну процедуру в приложении
Код:
function ReceiveMessage(a1:PUINT; a2:UINT; a3:WPARAM; a4:LPARAM):LPARAM; cdecl;//в dll
и
SendMessage = function(a1:Pointer; a2:Cardinal; a3:integer; a4:integer): integer; cdecl;//в приложении
в ReceiveMessage приходит команда с кодом в a2 и параметром a3. В а3 может быть следующая структура для получения картинки, такую же структуру я должен заполнить чтобы передать приложению.Как туда передать картику и получить картинку (может быть BMP, PNG, JPG указывается в поле typePic)?
Код:
  rec_picture = packed record
  	name     : array[1.254] of char;
  	typePic  : integer;
  	pData    : ^BYTE;    //указатель на память
  	lenData  : Cardinal; //размер массива памяти
  end;
puga555 вне форума Ответить с цитированием
Старый 22.12.2009, 12:47   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

очевидно, что typePic - определяет что передается-принимается... отсюда не мешало-бы подробнее указать: что за программа, дать на нее ссылку, почитать описание к ней... сомневаюсь, что если разработчик дал эту структуру и никак ее не описал... так что ждем от вас полную информацию.
Цитата:
может быть BMP, PNG, JPG
скорее речь идет о битовой матрице, но без описания один вариант - получите данные, сохраните и посмотрите hex редактором заголовки.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 22.12.2009, 13:30   #3
puga555
Пользователь
 
Регистрация: 12.11.2008
Сообщений: 12
По умолчанию

ну да там битовые данные, что потом с ними делать, и как туда их потом поместить? с графикой почти работал
puga555 вне форума Ответить с цитированием
Старый 22.12.2009, 13:59   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
ну да там битовые данные, что потом с ними делать, и как туда их потом поместить? с графикой почти работал
очень информативно,а то отсюда - pData: ^BYTE не видно, что они битовые...возьмите любой bmp и гляньте его в hex-редакторе...

...а первую часть сообщения вы игнорируете значит?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 22.12.2009, 14:15   #5
puga555
Пользователь
 
Регистрация: 12.11.2008
Сообщений: 12
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
очевидно, что typePic - определяет что передается-принимается... отсюда не мешало-бы подробнее указать: что за программа, дать на нее ссылку, почитать описание к ней... сомневаюсь, что если разработчик дал эту структуру и никак ее не описал... так что ждем от вас полную информацию.
typePic да определяет тип картинки.
Программа называется RUMUS2, предназначена для интернет дилинга.Инструкция там подробная, но об этом ни слова))
описание для создания модулей тут
http://download.fxclub.org/Rumus2/FxClub/api.zip
сама программа тут
http://download.fxclub.org/Rumus2/Fx...us2setupQT.exe
puga555 вне форума Ответить с цитированием
Старый 22.12.2009, 15:08   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

вопросец, это вы сами написали?
Код:
name     : array[1.254] of char;
  	typePic  : integer;
  	pData    : ^BYTE;    //указатель на память
  	lenData  : Cardinal;
потому как в структуре приема
Код:
function ReceiveMessage(pObject:FXHANDLE;
nMessageID:UINT;
MwParam:WPARAM;
MlParam:LPARAM):LPARAM; cdecl;
и нигде, ни в API_release, ни в прилагаемых хэдерах с папки interfaces и примерах (SampleIndicator, SampleModule, SampleTrade, SampleWidget) нет и намека, что есть возможность обмениваться картинками... формы создавать да, числа туда-сюда- да... картинок не вижу...
...да и вообще массив char на 254 присутствует только в <mainwidgetInterface.pas>:
Код:
//структура единицы данных для DND - Drug'n'Drop
  fxDNDStruct = packed record
  	m_szProvides : array[0..254] of Char;
  	m_bAccepted  : boolean;
  	m_lpData     : Pointer;
  end;
может вы другое описание дали? если нет, и я проглядел, укажите где это есть.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 22.12.2009, 16:02   #7
puga555
Пользователь
 
Регистрация: 12.11.2008
Сообщений: 12
По умолчанию

картинку передавать туда есть возможность, это передавать иконку своего модуля.А так вопрос я сам придумал. просто собрал в кучу что мне нужно.А вообще я собираюсь обмениваться картинками между своими модулями
puga555 вне форума Ответить с цитированием
Старый 22.12.2009, 16:37   #8
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
картинку передавать туда есть возможность, это передавать иконку своего модуля
в таком случае не нужно выдумывать за остальные форматы и придумывать структуру, которую не поддерживает программа... структура ICO определена и известна, вам достаточно сохранить данные в файл и сравнить хэдеры с хэдерами известного ico файла, что следует из поста #2...
Код:
// А так же иконка компонента
  iconComponent = packed record
  	typeIcon : integer;
  	pData    : ^BYTE;
  	lenData  : integer;
  end;

  nameComponent = packed record
  	name           : array[0..MAX_NAME_COMPONENT-1] of Char;
  	sIconComponent : iconComponent;
  end;
Цитата:
А так вопрос я сам придумал. просто собрал в кучу что мне нужно.А вообще я собираюсь обмениваться картинками между своими модулями
эм... определиться-бы вам: вы хотите обмениваться иконками с руфусом или все-таки между своими модулями? если иконкой, то вы ограниченны вышеприведенной структурой и надо понимать чем ico отличается от других, если меж модулями, то таких ограничений у вас нет, можете обмениваться хоть через буфер обмена (просто делаете свой интерфейс обмена сообщениями) и руфус тут ни причем.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 22.12.2009 в 16:41.
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать адрес метода из dll в приложение и присвоить его событию OnClick? puga555 Общие вопросы Delphi 1 22.12.2009 17:04
Передать строки из dll в программу 856100 Общие вопросы Delphi 6 03.08.2009 00:37
Как разместить Alpha skin's в ресурсах программы dolphin705 Компоненты Delphi 4 22.03.2009 21:00
Как передать данные в MDIChild-форму, загруженную из dll Shvonder Общие вопросы Delphi 0 18.03.2009 12:46
Как сделать какртинку ссылкой? vlad2423 HTML и CSS 1 13.03.2009 15:02