![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Только начал пользоваться dll.
Вопрос: по нажатию кнопки открывается подключается бблиотека и открывается форма из этой библиотеки. Пользователь выполняет тест на форме библиотеки, вычисляеются результаты функциями библиотеки. Проблема в том, как передать вычесленные данные из библиотечной формы в основную? |
#2
|
||||
|
||||
![]() В теле ф-ии создаешь форму, когда форма вернет ShowModal = mrOk выделяешь память, заносишь туда данные с формы и возвращаешь указатель на память с данными.
Код:
function SomeFunction(arguments:pointer):pointer;stdcall; .... Код:
var SomeFunction:function(arguments:pointer):pointer;stdcall; ... procedure TFrmMain.Button1Click(sender:tobject); var hDll:thandle; begin hDll := LoadLibraryA(PChar('DllName.dll')); //обработчик ошибки загрузки SomeFunction := GetProcAddressA(hDll,PChar('SomeFunction')); //далее вызываешь саму функцию end; — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 01.02.2010 в 08:12. |
#3
|
|||
|
|||
![]() M.A.D.M.A.N., если не сложно, поясни подробней принцип действия своего варианта.
непонимаю как это поместить форму в тело функции... Думал сделать чтобы по завершению теста на форме из длл нажимать кнопку ЗАВЕРШИТЬ ТЕСТ и данные передавались в основную прорамму. Под данными понимаю одну строковую переменную и 3-и целочисленных. |
#4
|
||||
|
||||
![]() Также советовал бы воспользоваться поиском по форуму. Вроде и не один раз эта тема поднималась.
Нет повести печальнее на свете, чем повесть о заклиневшем Resete. ![]() |