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

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

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2009, 09:27   #21
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Пожалуй так и поступим. Явное указание для чужой функции.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 08.12.2009, 16:07   #22
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
А мы еще и клетки руками полосовали
Чернильницы на тетрадку хватало?
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 08.12.2009, 16:17   #23
crazy horse
ios developer
Старожил
 
Аватар для crazy horse
 
Регистрация: 16.11.2007
Сообщений: 2,885
По умолчанию

Хватало, но если тетрадь была большая, перья гусиные стирались - хоть пинцетом держи. Пинцеты тогда были дефицит - пользовались китайскими палочками
Сорри за оффтоп
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!
crazy horse вне форума Ответить с цитированием
Старый 09.12.2009, 09:56   #24
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

По сути продолжение данной темы, поэтому не создаю новую .
Сейчас подумываю над подключением функций из ДЛЛок. Сам процесс задуман следующим образом: программер в команде указывает имя специального текстового файла, ну какой-нибудь командой вроде загрузим функции из библиотеки имя файла (сейчас синтаксис не имеет значения). В данном текстовом файле идет описание функций, числа параметров и имени ДЛЛ. Интерпретатор грузит данные функи и если они встречаются, вызывает их из ДЛЛ. Затем программер дает команду и интрепретатор отстыковывает от себя ДЛЛку. То есть загрузка динамического типа. Естественно, грузить можно будет не все ДЛЛки, а только созданные определенным образом (это пока тоже не имеет значения).
Ну теперь собственно вопрос, чем считать такие функции? Я хочу подключать их как встроенные - загрузил и она считается как в Дельфи из модуля System, если имя совпадает с настоящей встроенной, то она будет перегружена.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 09.12.2009, 10:13   #25
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
то она будет перегружена.
Даже если у них параметры одинаковые?
Я бы их считал как функции фнешнего модуля. (Опять таки я на Компонентный Паскаль опираюсь во мнении)...
Цитата:
В данном текстовом файле идет описание функций
Крамольная мысль: А что было бы если бы компиляторы сами пытались узнать какого типа параметры функции в ДЛЛ в ходе компиляции кода, без указания ранее этой функи.

т.е. смысл в том что проггер то должен четко знать какого типа какой параметр, и тогда может писать

Users32.dll.MessageBoxA(Handle,PCha r('ntrcn'),PChar('Caption'),Integer (0));

Смысл в том чобы компилятору указывать какая функа из какой ДЛЛ сейчас вызывается, а не описывать их статически.
Компилятор, подгружит эту ДЛЛ или если она подгружена уже возьмет ее, и выполнит функцию, запуздырив в стек указанные параметры. Поскольку в параметрах указан тип данных, компилятору должно быть не трудно подумать запуздыривать в стек указатель на структуру или просто некое число.

Как тее такая идейка?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.12.2009, 10:23   #26
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Крамольная мысль: А что было бы если бы компиляторы сами пытались узнать какого типа параметры функции в ДЛЛ в ходе компиляции кода, без указания ранее этой функи.
Пока я только понял что мысль крамольная .

Цитата:
т.е. смысл в том что проггер то должен четко знать какого типа какой параметр, и тогда может писать

Users32.dll.MessageBoxA(Handle,PCha r('ntrcn'),PChar('Caption'),Integer (0));
Прогер это будет знать всегда. Все параметры строки и не могут быть не строками (число - строка, массив - строка, множество - строка). Ему главное не ошибиться числом параметров и именем функции .

Цитата:
Смысл в том чобы компилятору указывать какая функа из какой ДЛЛ сейчас вызывается, а не описывать их статически.
Подробней, я плаваю в ДЛЛках, всегда подключал статически и не очень разбираюсь в этих вопросах.

Цитата:
Как тее такая идейка?
Пока понял что какая-то интрига, но в чем она заключается ?




--------------------------------------- Добавлено позже --------------------------------------------------

Кажется немного въехал... Хорошо, вот ситуация он вызывает функцию которой нет в ДЛЛ, че тогда? Access Violation? Я всегда побаиваюсь ДЛЛ - это черный ящик и как с ним бороться? Отсюда у меня все эти заморочки и есть. Пока я пишу ДЛЛ все ровно, но я хочу дать возможность писать для интрепретатора функции всем кому вздумается.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 09.12.2009 в 10:31.
Utkin вне форума Ответить с цитированием
Старый 09.12.2009, 10:33   #27
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Когда ты подключаешь статически ты в intarface прописываешь
Функа Имя () Экстернал "ДЛЛ.dll"
А уж потом их просто вызывать.
Так вот смысл интриги в том чтобы компилятору этого не писать.
Пусть компилит, но как встретит строчку типа той что я указал, пусть знает что функция эта должна быть подгруженна из DLL, модуль которой называется так как написано перед ней.
т.е. компиляору совершенно не обязательно знать какие программа будет библиотеки подгружать.
Это я к тому можно прописать в проекте кучу функций из кучи ДЛЛ, но не всегда они могут быть нужны, допустим:
Код:
If Flag1=23 then
 Users32.dll.MessageBoxA(Handle,PCha r('Хаха'),PChar('Caption'),Integer 
(0)); 
If Flag1=78 then
 Users32.dll.MessageBoxA(Handle,PCha r('Хохо'),PChar('Caption'),Integer 
(0));
Так вот соверщенно не нужно загружать эти ДЛЛ, ибо не факт что их функции понадобятся для работы в Run-time. Но если понадобятся - пусть подгрузятся динамически и выполнятся.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.12.2009, 10:40   #28
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Ну я и хотел динамическую загрузку через
Цитата:
function LoadLibrary(LibFileName: PChar): THandle;
Просто текстовый файл должен по идее хранить описания функций, это нужно во-первых для редактора кода, а во-вторых, я могу отлавливать ошибки еще до их возникновения (например, неверно указано число параметров) - для интрепретаторов это важно. А если я передам функе в ДЛЛ ошибочные параметры, что получу взамен? И как потом интерпретатору объясняться с программером - "Извини, чел, так не пойдет. Не знаю как, но не так"

Второй пункт, который я пропустил - у меня сменный синтаксис. Для смены наименований функций в ДЛЛ мне понадобиться подкорретировать только текстовый файл.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 09.12.2009 в 10:43.
Utkin вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приоритет процесса P@SH@ Win Api 9 13.05.2014 21:48
Приоритет макроса ru3000 Microsoft Office Excel 4 02.09.2009 04:45
использование функций в качестве параметров других функций mono Помощь студентам 0 20.04.2009 18:25
Приоритет Михаил Юрьевич Win Api 5 15.07.2008 23:23
Приоритет чужого процесса (консультация) Air Win Api 9 06.03.2008 20:05