Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вызов функции по имени, и чтоб результтат получить :) 
:(
    Опции темы
Budy
Дата 29.1.2006, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



:Приветствую
Подскажите, как мона вызвать функцию, зная лишь ее имя (например cos или trunc), и при том нужно получить возвращаемый ею результат


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
ivan219
Дата 29.1.2006, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: нет
Всего: 12



Имя функции это переменная и она несёт результат. Cos(X)
PM MAIL ICQ   Вверх
Guedda
Дата 29.1.2006, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 3
Всего: 78



Ты в другом форуме постил, и там пример был про два эдита... Так вот ответ, в принципе:
Код

type
  TMyFunc = function(x : Real) : Real;

var
  Dll_Hnd : THandle;
  MyFunc : TMyFunc;
procedure TForm1.Button1Click(Sender: TObject);
var
  b : Real;
begin
  Dll_Hnd := LoadLibrary('MyLib.dll');
  if DLL_Hnd = 0 then raise Exception.Create('Библиотека MyLib.dll не найдена!')
  else
  begin
    try @MyFunc := GetProcAddress(DLL_Hnd, Edit1.Text); // собственно, имя функции
        if @MyFunc <> nil then 
          b := MyFunc(StrToFloat(Edit2.Text)); //Собственно, юзаем функцию из дллки
    except 
        on E: Exception do 
          ShowMessage('Ашыпка: ' + E.Message); 
      end; 
    end; 
    FreeLibrary(DLL_Hnd);
  end;
end;


Это сообщение отредактировал(а) Guedda - 29.1.2006, 15:00


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Budy
Дата 31.1.2006, 06:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



Ну емое, мне не надо через DLL.....


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
_hunter
Дата 31.1.2006, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



а через что тебе нужно?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Guedda
Дата 31.1.2006, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 3
Всего: 78



Если через приложение, тогда так:
Код

procedure TForm1.Button1Click(Sender : Tobject);
begin
  Str := Edit1.Text; //Твоя функция
  if Str = 'sin' then y := sin(x)
  else if Str = 'cos' then y := cos(x);
end;


Легче делать через длл.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
_hunter
Дата 31.1.2006, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



Guedda, тебя не смущает что одних API-шных функций за несколько десятков тысяч?
ты только их имена несколько месяцев писать будеш...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Budy
Дата 2.2.2006, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



_hunter, мне не нуна чтоб всякие лишние файлы были, чисто один exe без всяких DLLок


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
_hunter
Дата 2.2.2006, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



а не спрашивал что тебе ненуна. я спрашивал через что тебе нужно.
точнее что, вообще, должно получится ( какие функции нужно вызывать ( где они расположены ) )


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Budy
Дата 3.2.2006, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



Меня вообще интерисует возможность такого.
Для начала было бы неплохо получать таким путем отя бы тригонометрические функции из math (например). Через что без разницы, главное чтоб исполняемый файл был один без всяких DAT, DLL и тп


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
Guedda
Дата 3.2.2006, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 3
Всего: 78



тебе просто-напросто необходимо написать мини-интерпретатор. Я думаю, что лучше его делать на С либо на Asm


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
_hunter
Дата 3.2.2006, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



Guedda, пример в студию!

Budy, с функциями из модуля math может и не получится -- неизвестно где они расположены ( math.bpl? -- нужно проверить... )
но даже если получится -- придется тянуть за собой этот модуль.
+ ты так и не сказал -- тебе нужна возможность вызова функций вообще или вызова какого-то ограниченного ( и заранее известного ) набора функций...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Budy
Дата 4.2.2006, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



_hunter, блин, вы говорите загадками, я уже сам не знаю чего мне надо smile
может какойнить пример уже напишешь?

Guedda, потому и пишу, что увидел как знакомый делает на C, и захотел на Delphi

Это сообщение отредактировал(а) Budy - 4.2.2006, 01:02


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
RA
Дата 4.2.2006, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 7
Всего: 115



Пример для вызова апишных функций.

Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  APISearchEngine.rar 162,21 Kb
PM   Вверх
Budy
Дата 5.2.2006, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



Ладно, всем сенк, возьму что есть


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0565 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.