powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Про улучшение DLL
121 сообщений из 121, показаны все 5 страниц
Про улучшение DLL
    #38795779
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryВчера я решил заняться чем-нибудь интересным.

Вот опять как и у автора topic возникает необходимость изобретать велосипед.
Сейчас разрабатываю library, которая будет предоставлять расширенный функционал при работе с dll файлами.
В частности:

- (1) производить demangle без использования UnDecorateSymbolName function http://msdn.microsoft.com/en-us/library/windows/desktop/ms681400(v=vs.85).aspx.

- (2) вызывать во время run-time работы программы на выполнение функции из произвольных dll

...

(1) нужен для того, чтобы получить данные об параметрах и возвращаемом значении функции
(2) думаю будет интересен многим /про свои потребности пока говорить не буду/

Для реализации (2) нужно знать все об аргументах функции и обязательно их size.
Для "стандартных" типов данных все относительно просто, а вот для "не стандартных" вопрос довольно не прост.
Пока еще не знаю путей его решения.
Текущая разрабатываемая ветка решения этого вопроса основывается на том, что алгоритм знает где находятся необходимые *.h.
Так вот придется парсить *.h и выуживать из них необходимые данные.

PS: Так как уже не один раз приходилось решать подобного рода задачи, то скорее всего придется изучить уже
кем-то изготовленные "велосипеды" llvm.org ...

Сейчас только приступаю к реализации (2) пункта ...
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38795792
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012/про свои потребности пока говорить не буду/
от потребностей решение зависит
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38796454
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012- (2) вызывать во время run-time работы программы на выполнение функции из произвольных dll
Для реализации (2) нужно знать все об аргументах функции и обязательно их size.
Для "стандартных" типов данных все относительно просто, а вот для "не стандартных" вопрос довольно не прост.
Пока еще не знаю путей его решения.
Не всегда можно вызвать ф-ю из ДЛЛ, даже имея прототип.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38796947
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyНе всегда можно вызвать ф-ю из ДЛЛ, даже имея прототип

Безусловно. Тем более многие функции "работают" если для них подготовлена "среда обитания".

Суть данного проекта не в том, что этот механизм не реализован другими, а в том, чтобы
уменьшить трудоемкость возлагаемую на программиста при кодировании.

Поясню.
К примеру посмотрим на http://www.script-coding.com/dynwrapx.html /библиотека для вызова функций Win 32 API/
Решает вопрос?
Да.
Вообщем то как молоток и кувалда хороши если их применять тогда когда они наиболее полезны, так и это
решение безусловно очень полезно ...

Для начала хотелось бы добиться того, чтобы для вызова функции dll программисту не нужно было передавать данные об типах параметров.

PS: Вообще то лукавлю.
То что пытаюсь сделать будет иметь уменьшение трудоемкости в кодировании всего лишь как побочный эффект.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38796980
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТекущая разрабатываемая ветка решения этого вопроса основывается на том, что алгоритм знает где находятся необходимые *.h.
Так вот придется парсить *.h и выуживать из них необходимые данные.

В чём проблема ?? Создайте свой синтаксический анализатор.
Тем более если вы программируете на С/С++.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38796986
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012 PS: Вообще то лукавлю.
То что пытаюсь сделать будет иметь уменьшение трудоемкости в кодировании всего лишь как побочный эффект.

вы хотите сказать- "если я не буду писать анализатор своими руками, а скачаю какую-то библиотеку, реализующую то что нужно, то я добьюсь поставленной задачи и плюс минимизирую время на разработку." ?



Очевидно, это так.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38796990
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В контексте программирования, я бы не рекомендовал использовать словосочетание "побочный эффект" так, как вы его использовали. (не придираюсь, просто у этого словосочетания есть вполне определённо значение)
K&RОбращения к функциям, вложенные операции присваивания, операции
увеличения и уменьшения приводят к так называемым "побочным эффектам" —
некоторые переменные изменяются как побочный результат вычисления выражений.

Ещё ссылка
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38797026
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryвы хотите сказать- "если я не буду писать анализатор своими руками, а скачаю какую-то библиотеку, реализующую то что нужно, то я добьюсь поставленной задачи и плюс минимизирую время на разработку." ?

Ну да ладно приоткрою немножко свои потребности.
Данный проект в какой-то мере позволит решить вопрос создания программ, которые без
перекомпиляции смогут "на лету" использовать функции находящиеся в разных dll
/извиняюсь за некоторую корявость фразы .../.
Поясню.
Обычно программа использует какой-либо API, который реализован в каких-либо dll.
Так вот хочет добиться того, чтобы программа без перекомпиляции смогла бы использовать
аналогичные функции находящиеся в других dlls

PS: Про то как это будет организовано /программный комплекс/ и как программа будет понимать, что
с данного момента должна будет использовать другую функцию ... ...
прошу не спрашивать ...
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38797322
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012,

То, что вы хотите, называется шаблон проектирования Адаптер.
И для его реализации вообще не нужны все эти извращения с анализом ДЛЛ.

Если вам надо работать с разными, но аналогичными АПИ, то надо ввести дополнительный уровень абстракции.
Назовите его Обертка.
Основная программа работает только с АПИ обертки, а оберток несколько и они реализуются в виде отдельных ДЛЛ, каждая из которых вызывает свое конкретное апи.
Таким образом для добавления нового АПИ вам не надо перекомпилировать программу, а надо только скомпилировать новую обертку и указать ее в конфиге программы.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38797358
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky, а надо только скомпилировать новую обертку и указать ее в конфиге программы.

Обратите внимание на post выше:

... Данный проект в какой-то мере позволит решить вопрос создания программ, которые без
перекомпиляции смогут "на лету" ...
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38797369
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Обратите внимание на post выше:

Пожалуй поспешил с ответом ...

... Основная программа работает только с АПИ обертки, а оберток несколько и они реализуются в виде
отдельных ДЛЛ, каждая из которых вызывает свое конкретное апи.

Опять мы привязаны к dll ... ...

PS: Просьба не продолжать обсуждение этой темы.
Еще раз.
Цель проекта не в том, чтобы решить какие-то локальные хотелки, а предоставить
разработчику механизм работы при котором у него не будет болеть голова об создании
каких-либо адаптеров ... ...
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38797377
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Так вот хочет добиться того, чтобы программа без перекомпиляции смогла
бы использовать аналогичные функции находящиеся в других dlls
Ну, предположим проблему размещения параметров в стэке/регистрах для всех возможных
calling convention можно решить ассемблером. Но я бы посмотрел что ты будешь сделать с
экспортируемыми функциями, которые не только не mangled, но ещё и совершенно безымянные...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38797406
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНо я бы посмотрел что ты будешь сделать с
экспортируемыми функциями,
Что не удастся решить будет вынесено в manual. Скажем в раздел "Ограничения по использованию".

Знаете многие фирмы пишут подобные "велосипеды" и накладывают разного рода ограничения
/например аргументы функции должны иметь только стандартные типы данных .../

PS: Задача довольно не простая ...
Пока выбрал направление работ к ее решению, то что приведено несколькими постами выше.

Dimitry Sibiryakov
Когда года два назад пришлось мне разработать decompiler для Firebird, то надо сказать
ты правильно угадывал чего автор хочет.
Что скажешь в этом случае?
Кстати на счет decompiler он существует и на 100% правильно выполняет свои функции.
После декомпиляции производится компиляция декомпилированного текста и затем производится
верификация исходного бинарного кода с полученным ...
Так вот поверь мне декомпилятор прошел "жесткую" проверку.
Поэтому то набираюсь смелости утверждать, что он "на 100% правильно выполняет свои функции."
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38797558
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Цель проекта не в том, чтобы решить какие-то локальные хотелки, а предоставить
разработчику механизм работы при котором у него не будет болеть голова об создании
каких-либо адаптеров ...
Ну если отрезать голову то определенно она не будет болеть :)
Вы занимаетесь фигней. Не взлетит оно. Будет работать в каких-то нескольких частных случаев с мегакостылями в качестве подпорок.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38797577
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Об чём тут? Попытка написать "свою" рефлексию?
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38797671
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyБудет работать в каких-то нескольких частных случаев с мегакостылями в качестве подпорок.

А поподробней можно об "в каких-то нескольких частных случаев с мегакостылями в качестве подпорок"
Я не иронизирую.
За ваши ответы спасибо.

PS: Вообще то тема на мой взгляд интересна.
Хотелось бы, чтобы другие разработчики рассказали как они видят решение этого вопроса ... ...
А что до меня. Так у меня уже давненько и не раз мелькала мысль разработать другой формат
представления dll /скорее всего к этому и приду/.

И еще какой смысл говорить автору, что у него ни чего не получится ...
Мною поднятая тема не для выпендривания перед другими, а для того, чтобы услышать мнение
и подходы к решению этого вопроса других.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38798070
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012 Цель проекта не в том, чтобы решить какие-то локальные хотелки, а предоставить
разработчику механизм работы при котором у него не будет болеть голова об создании
каких-либо адаптеров ... ...Ты сам себе противоречишь.
Либо механизм работы и адаптеры, либо иди на биржу труда нанимай себе суб-разработчика, пусть у него голова болит.
Иметь механизм работы без адаптеров в принципе невозможно.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38798071
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012 А что до меня. Так у меня уже давненько и не раз мелькала мысль разработать другой формат
представления dll /скорее всего к этому и приду/.Ну.... если тебе это так сильно хочется, то вперед!
Но начни все-же с "локальных хотелок". Эта смутная идея у тебя же не на пустом месте возникла. Вот возьми ту самую конкретную задачу для которой тебе понадобилось изобретать замену для dll и придумай для нее три-четыре "своих супер dll". Потом опиши нам эти супер-dll и покажи что их нельзя (или хотя бы неудобно) сделать на основе обычных dll.
Сможешь это сделать?
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38798500
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl(или хотя бы неудобно) сделать на основе обычных dll.

Дело не в том, что в существующем формате PE /dll/ файла чего-то там не достает, а в том что
данный формат использован был разработчиками в соответствии с их видениями того что им нужно
для run time использования dll.

Дальнейшее что сейчас скажу не воспринимайте, что это мне достает и нужно добавить в dll, а
всего лишь как пример.
Предположим я хочу, чтобы при run time проверялась лицензия /какие то поля/ на использование той или
иной функции.
Слушайте этих "хотелок" может быть много ...

Другой формат dll /или доработанный нынешний/ мне в основном нужен для того, чтобы в ней было
достаточно данных для того, чтобы обеспечить динамическое во время run-time использования функций
без необходимости перекомпиляции исходного текста.

И не факт, что буду разрабатывать новый формат dll /но не исключаю, что придется/
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38798524
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Другой формат dll /или доработанный нынешний/ мне в основном нужен для того, чтобы в ней было
достаточно данных для того, чтобы обеспечить динамическое во время run-time использования функций
без необходимости перекомпиляции исходного текста.

COM хочешь заново изобрести?
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38798542
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилCOM хочешь заново изобрести?
Не, сам по себе СОМ таки требует перекомпиляции. Он, похоже, тщится изобрести IDispatch.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38798554
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovИзопропилCOM хочешь заново изобрести?
Не, сам по себе СОМ таки требует перекомпиляции. Он, похоже, тщится изобрести IDispatch.
не-не, он хочет прочитать tlb и на ходу сгенерить прокси
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38798571
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилDimitry Sibiryakovпропущено...

Не, сам по себе СОМ таки требует перекомпиляции. Он, похоже, тщится изобрести IDispatch.
не-не, он хочет прочитать tlb и на ходу сгенерить прокси

А это имеет какое-либо значение /кстати COM технологию часто использую в работе/?

PS: Лучше подумайте об дивидентах, которые бы дало решение этого вопроса.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38798601
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012PS: Лучше подумайте об дивидентах, которые бы дало решение этого вопроса.
Да нет никаких дивидендов :)
Постановка задачи - отказаться от перекомпиляции - бессмысленна.
Почему вообще возникло такое требование? У вас что нет компилятора? Или библиотека поставляется без заголовочного файла? Думаю что нет.
Все равно код который будет динамически вызывать ДЛЛ надо будет как-то компилировать.
Почему же тогда надо извращаться с рефлексией, когда можно вызвать функцию прямо, используя ее прототип (статически или через указатель)?
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38798634
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyВсе равно код который будет динамически вызывать ДЛЛ надо будет как-то компилировать.


На ходу придумываю пример.
К примеру разрабатываю калькулятор, который имеет какой-то набор функций.
Скажем имеется какой-то модуль, который отвечает за вычисление выражения ...
И вот скажем понадобилось нам добавить возможность использования новых функций ...
Дальше понятно?
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38798639
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyВсе равно код который будет динамически вызывать ДЛЛ надо будет как-то компилировать.
можно и однократно скомпилить для линковки с основной программой, далее - интерпретатор параметров и соглашений о вызове.( питон, например запользовать)
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38798642
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012И вот скажем понадобилось нам добавить возможность использования новых функций ...
универсальный плагин?
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38798650
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил( питон, например запользовать)
Ну да ладно.
Строгаю некую новую программную систему.
Будет в ней что-то интерпретаторов, что-то от компиляторов ...
Так вот /надеюсь осилю/ будет в ней возможность во время run time использовать новый функционал
без перекомпиляции модулей ...

PS: Эту тему точно не буду обсуждать, потому что она легко переходит в флуд ... /да и не к чему это/.
Вот когда появится хотя бы бета версия, то тогда можно будет о чем либо говорить.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38798671
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012,

так адаптер на каком языке программисты-пользователи писать должны?
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38798674
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может плавное развитие этой идеи приведёт к Microsoft .Net Assembly?
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38798908
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012 Слушайте этих "хотелок" может быть много ...
Ну так перечисли эти хотелки. Если их много, то десяток-два ты точно сможешь набрать.

Владимир2012 Предположим я хочу, чтобы при run time проверялась лицензия /какие то поля/ на использование той или
иной функции.Я не понимаю эту хотелку, объясни ее пожалуйста с примерами.


Владимир2012 Другой формат dll /или доработанный нынешний/ мне в основном нужен для того, чтобы в ней было
достаточно данных для того, чтобы обеспечить динамическое во время run-time использования функций
без необходимости перекомпиляции исходного текста.пока ты не покажешь конкретную задачу, которую невозможно решить на основе dll, все твои аргументы будут отметаться по принципу: "он просто не умеет использовать dll".
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799169
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Anatoly MoskovskyВсе равно код который будет динамически вызывать ДЛЛ надо будет как-то компилировать.


На ходу придумываю пример.
К примеру разрабатываю калькулятор, который имеет какой-то набор функций.
Скажем имеется какой-то модуль, который отвечает за вычисление выражения ...
И вот скажем понадобилось нам добавить возможность использования новых функций ...
Дальше понятно?
На ходу уже второй раз пишу как это делать правильно.
1) Делаем плагинАПИ.
Согласно этому АПИ, функциональность расширяется с помощью загрузки ДЛЛ из папки с плагинами.
Каждая ДЛЛ экспортирует функцию, которая регистрирует предоставляемую функциональность в ядре программы (точка входа в ядро например передается через один из аргументов этой экспортированной функции при загрузке плагина).

2) И вот скажем понадобилось нам добавить возможность использования новых функций.
Дальше понятно - делаем еще одну ДЛЛ, которая регистрирует новые функции реализованные в ней.
И копируем в папку с плагинами

Программу при этом перекомпилировать не требуется.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799171
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это настолько тривиальная, отработанная, и можно сказать классическая схема расширяемости, что я до сих пор не могу поверить что вы на полном серьезе обсуждаете нечто, что на порядки сложнее в реализации.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799195
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovskyпока ты не покажешь конкретную задачу,

Вопрос, который меня интересует связан с возможностью использования во время run-time функций
из произвольных dll.

PS: Спорить не люблю ...
Вас все устраивает - рад за вас.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799199
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyСогласно этому АПИ, функциональность расширяется с помощью загрузки ДЛЛ из папки с плагинами.
И получаем страшный сон в виде jquery, nodejs /с сотнями plugin/... ...

PS: Это интересный путь ...
Попытаюсь развить и другой
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799202
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз - run time мне нужен для некой программной технологии, которую по мере сил разрабатываю.

PS: Вопросы об ней могут быть только когда она дорастет до беты.
Обсуждать ее пока нет смысла ...
Кстати одним из demo будет - calculator
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799206
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Вопрос, который меня интересует связан с возможностью использования во время run-time функций
из произвольных dll.
ну хорошо - добыли из разных источников описание параметров функции.
что дальше то делать с этим?

предположим, гипотетический калькулятор подлежит расширению функциями double f(double)
в одной dll функция имеет дополнительный аргумент (ну предположим точность вычислений)
в другой - не имеет дополнительного параметра, но типы параметра и значения - float

что с этим зоопарком делать? на специальном языке описывать правила преобразования параметров?
без интерпретатора этого языка не обойтись, ибо в любой момент в рантайме может появиться новая dll
со своими соглашениями о вызове функции (ну например потребовать предварительно вызвать дополнительную функцию для инициализации)

Или жёстко потребовать, чтобы расширяющие калькулятор dll использовали чётко определённый интерфейс?
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799213
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилчто с этим зоопарком делать?

Попал в точку.
Как раз развиваемая технология и будет заниматься этими вопросами и многими другими ...

PS: Не обижайся, но эти вопросы обсуждать не буду.
Если копнуть этот вопрос, то он потянет мнооого других.
И в результате вместо разработки начну писать manual на то, чего еще нет
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799225
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Как раз развиваемая технология
так не вижу развиваемой технологии

Или просто имеется абстрактное желание без малейших идей по реализации.
А поиск идёт не там где потеряли, а там где светло (как добыть описание описание параметров).

Ну нашли, формализовали описание, нарисовали универсальный вызывальщик
dynamicCall(entryPoint,callConvention,parameterDescription,parameterArray,pResult)
дальше то что делать?
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799232
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилдальше то что делать?
Что дальше с этим делать зависит от программиста.

PS: Еще раз в дебри вдаваться не считаю нужным.
Меня интересует чисто техническое решение этого вопроса.
Да и более ранние ответы разве не говорят о том чего хочет автор?

"... Или просто имеется абстрактное желание " - "... обидеть норовишь.
Тут за день так накувыркаешься.
Придешь на форум ..."

/конечно это шутка не прими на свой счет/
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799238
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Да и более ранние ответы разве не говорят о том чего хочет автор?
уже не говорят.
без шуток.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799242
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилбез шуток.

PS: Похоже обсуждать поднятый мной вопрос ни кто не хочет, а все сводится к -
"Расскажи для чего это тебе нужно?".
Любопытно неужели ни кому не нужно?
Не удивлюсь если ответ будет - ''Да".
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799251
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012"Расскажи для чего это тебе нужно?".
для чего - понятно - попытка написать сверхуниверсальную плагинную систему.

я интересуюсь, как она будет функционировать в некоторых частных случаях - того же калькулятора.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799255
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Любопытно неужели ни кому не нужно?
Не удивлюсь если ответ будет - ''Да".
Разумеется, ответ будет "да". Программирование существует не первый день. Динамические
библиотеки тоже изобретены ещё в прошлом веке. Если бы кому-то понадобился универсальный
вызыватель произвольных функций, ты бы о нём слышал. Но даже самое близкое к нему
приближение - RunDll.exe - всё же требует от функций определённую сигнатуру.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799262
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovРазумеется, ответ будет "да".

Мало будет пользы от того, что года 3 буду чего-то там фантазировать, что потом ни кому не будет нужно.
Придет время поделюсь. Пока не чем.
Поэтому конечно я рад тому " Динамические библиотеки тоже изобретены ещё в прошлом веке" и в
придачу этому - колесо.
Ни кто эти достижения не отменяет и все мы этим пользуемся.
Но сделанный тобой из этого вывод как на мой взгляд - сомнителен.

PS: Кстати и decompile для firebird уже давно бы отдал в общее пользование с исходниками.
Но сообщество firebird выше этого ...
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799265
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012,

как с интерфейсом расширения калькулятора?

как мне адаптер описать? декларативно или императивно - неважно.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799278
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилкак мне адаптер описать?

Систему пишу на C++, а вот ответ на твой вопрос лежит в твоем же вопросе:

"что с этим зоопарком делать? на специальном языке описывать правила преобразования параметров?
без интерпретатора этого языка не обойтись, ибо в любой момент в рантайме может появиться новая dll
со своими соглашениями о вызове функции (ну например потребовать предварительно вызвать дополнительную функцию для инициализации)"

Система в чем то будет похожа на .Net.
Но с совершенно иным подходом к декларирования, ... ... ...

PS: Слушай не тереби меня пока.
Все твои вопросы правильны и в точку.
Но что ты хочешь, чтобы я тебе привел описание архитектурных решений системы,
которая только развивается?
То о чем ты спрашиваешь уже частично лежит в работающем коде, частично в *.txt в
которых автор отражает построение архитектуры системы ...
Рад твоей заинтересованности и надеюсь вернемся еще к этим вопросам ...
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799282
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012, презентация нужна.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799294
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012которая только развивается?
проектируется скорее - проектные решения и интересуют.
представление метаданных в частности
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799298
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилВладимир2012которая только развивается?
проектируется скорее - проектные решения и интересуют.
представление метаданных в частности
Calculator и будет презентацией.
Работы много.
Но она в чем то интересна, в чем то рутинна ...
Все как обычно.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799299
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012,

код не интересен, интересна концепция
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799300
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилкод не интересен, интересна концепция

Да понял я давно к чему ты ведешь.

PS: Все свое время.
Пока это - "государственная тайна".

А если серьезно - ни когда не обсуждаю то, что еще не реализовано.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799393
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012 А если серьезно - ни когда не обсуждаю то, что еще не реализовано.Видишь ли, мы серьезно сомневаемся что этот проект в принципе возможно реализовать.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799476
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlВладимир2012 А если серьезно - ни когда не обсуждаю то, что еще не реализовано.Видишь ли, мы серьезно сомневаемся что этот проект в принципе возможно реализовать.
Возможно!

PS: Вообще то при реализации этого проекта я его потихоньку наполняю разными классами, которые являются не абстрактными,
а реально используемыми /но те, что нужны для реализации проекта/.

Если бы была команда единомышленников /которые бы поверили не мне, а архитектурным решениям проекта/ с которыми
бы вместе производили его разработку, то ... "а так по 5, но большие".

Но это не реально:
- мы живем в реальном мире и нам нужно семью кормить;
- у нас и своих идей вагон;
- ...
- ...

То больше потеряю времени.
+ к этому как у лебедя, рака и щуки у каждого свое видение решения вопросов ...

Разве не прав?

А концовкой этого всего будет, то что кто-то продвинет эту архитектуру, но при этом внесет свою такую лепту, что от
первоначального замысла ни чего не останется.

Скажите мрачно смотрю.
Согласен.
Но у меня не было в жизни примеров, которые бы развеяли этот взгляд.

На счет dll.
Было бы совсем не плохо если бы об функциях хранилось больше мета информации /к примеру как в tlb/
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799496
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот любопытно часто на форумах слышу: "мы считаем", "мы думаем".
Когда это участники форума успевают коллегиально прийти к какому то мнению если
в ответах не чувствуется этой коллегиальности ...
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799708
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012,

Нас с White Owl как минимум двое, так что он вполне имеет право говорить "мы"
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799725
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Microsoft ни чего не будет улучшать в dll.
Их линия forever - .Net, а там в псевдокоде все, что мне нужно и больше имеется ...

PS: .Net не отвергаю /как и другие language. В них реализовано много интересных идей .../.
Весьма и весьма хороший проект.
Но есть в нем как и во всех продуктах Microsoft большой минус - программисты должны
изучать, изучать, ... до глубокой старости и более.
Изюминка моего проекта будет технология по типу 1С, но с совершенно иным подходом к
пониманию что такое объект и как с ним работать.
Поэтому надеюсь многое будет много проще ... ...
Еще раз: это будет не аналог 1С /1С приведена как пример интересной технологии/

Эпилог: обсуждать совершенствование dll нет смысла /ни кто этим заниматься не будет/.
В моем проекте конечно будет использоваться какое-то бинарное представление
объектов. Вот в нем и будет находиться вся необходимая meta information
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799791
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012В моем проекте конечно будет использоваться какое-то бинарное
представление объектов. Вот в нем и будет находиться вся необходимая meta information

IDispatch. Ню-ню...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799804
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovIDispatch. Ню-ню
Люди часто и густо высказывают "истинное суждение" и умиляются от своих "знаний" ...
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799812
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Microsoft ни чего не будет улучшать в dll.
Их линия forever - .Net, а там в псевдокоде все, что мне нужно и больше имеется ...


Не будет, но не поэтому, а потому, что больше ничего улучшать в DLL не нужно.
То, что ты хочешь, это не .dll, это RTTI или Reflection.
В .net он есть. В COM/OLE он есть. .DLL тут вообще ни при чём.

и занафига тебе нужно вызывать "всё что угодно" из .DLL -- тоже не понятно.
Это просто вообще никогда не нужно.
Нужно вызывать только то, что МОЖНО вызывать, что было придумано для того, чтобы БЫТЬ ВЫЗВАННЫМ.

Владимир2012 Но есть в нем как и во всех продуктах Microsoft большой минус - программисты должны
изучать, изучать, ... до глубокой старости и более.



Ты ещё не понял, что "изучать, изучать, ... " -- это суть профессии программиста ?

Ну и немного скажу в защиту .NET-а. Там такая чехарда технологий не совсем потому, что это именно Microsoft и его желание заставить всех "изучать, изучать, ... до старости", а по большей части из-за общих кризисов в производстве ПО.

Их одновременно сейчас два, один -- сетевая революция, что локальные приложения теперь не в почёте, и мобильная революция, что есть куча совершенно разных по характеристикам и возможностям устройств.

MS пытается решить эти две проблемы, решить их одновременно, и, что для него нехарактерно, -- первым.
Думаю, у него это вряд ли получится. Но мы сейчас все страдаем от этих потугов (я лично, правда, -- не страдаю).
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799837
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012 На ходу придумываю пример.
К примеру разрабатываю калькулятор, который имеет какой-то набор функций.
Скажем имеется какой-то модуль, который отвечает за вычисление выражения ...
И вот скажем понадобилось нам добавить возможность использования новых функций ...
Дальше понятно?

Нет, не понятно. Модуль должен как-то взаимодействовать с основной программой калькулятора.
Святым духом данные туда-сюда передаваться не смогут. Нужно соглашение о взаимодействии,
нужны структуры данных и их описание, и поддержка их с двух сторон.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799852
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012,

по ходу прочтения темы у меня возникли те же мысли, что у большинства ответивших. Твои хотелки давно реализованы в COM, .NET и пр. Ну или очень напоминают их.

В частности:
Владимир2012Предположим я хочу, чтобы при run time проверялась лицензия /какие то поля/ на использование той или
иной функции.
- в дотнете есть подпись сборки (dll) строгим именем - своего рода лицензия.
А проверка на использование той или иной функции идёт вразрез с твоими же высказываниями о том, что можно использовать любую функцию из любой dll. Тут либо любая, либо проверка.

Допустим, в какой-то dll есть функция, принимающая два целочисленных параметра и ничего не возвращающая. Один параметр - частота звука, другой - его длительность. При вызове функция воспроизводит звук. Вот скажи, зачем её вызывать из калькулятора? Она нужна для медиапроигрывателя, для синтезатора звуков.
Или же фунция будет ломиться в БД (несуществующую), пытаясь установить с ней соединение, что-то прочитать из неё, что-то записать. В итоге - крах программы (ну или как там обработка ошибок будет реализована).

То есть сама идея вызывать любую функцию изначально абсурдна.
Должно быть чёткое описание API. А далее - плагинная архитектура.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799862
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivТо, что ты хочешь, это не .dll, это RTTI или Reflection.
В .net он есть. В COM/OLE он есть. .DLL тут вообще ни при чём.

Конечно согласен с этим /и ранее высказал аналогичное суждение
"Их линия forever - .Net, а там в псевдокоде все, что мне нужно и больше имеется ..."/

Суть в том, что какими путями достигаются эти цели.

... Ты ещё не понял, что "изучать, изучать, ... " -- это суть профессии программиста ?

Знаешь несмотря на многие минусы и специфическую направленность технологии разрабатываемой
фирмой 1С многие вопросы на порядок быстрее решаются.
Так вот понятие производительности работы программисты включает много составляющих.
В т.ч. и время затрачиваемое на "изучение, изучение, ...", "кодирование, кодирование, ..." ...
Направленность моего проекта в какой-то мере будет решать увеличения производительности
работы прграммиста /в свете вышесказанного .../

Меня бы больше устроила технология в которой я не "изучаю, изучаю, ...", а занимаюсь
эффективно реализаций проекта /может быть и коряво сказано, но не хочу на целый лист
разжевывать эти мысли .../

Так вот технология COM мне знакома /но не считаю себя крутым спцецом в ней/ и используема.
И среды программирования C#, ... очень интересны, но на мой взгляд "трудоемки" в работе.
Сотни классов с сотнями методами ... ... ...

... Нужно соглашение о взаимодействии, нужны структуры данных и их описание, и поддержка их с двух сторон.

Безусловно такой механизм будет, а как иначе?
И калькулятор будет понимать какая математика /функции/ ему доступны.

Мог бы тебе на этот вопрос и не отвечать, потому что в твоем вопросе находится и ответ.
Правда раскрыл некую маленькую часть архитектуры.

PS: Я пока не могу сказать будет ли разрабатываемая мной технология тем к чему стремлюсь.
Не потому что сомневаюсь в принятых архитектурных решениях, а потому что еще не
могу ни чего сказать об производительности ее /буду стараться/.
Т.е. вывод простой - автор пытается создать некую rapid технологию.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799869
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivи занафига тебе нужно вызывать "всё что угодно" из .DLL -- тоже не понятно.
Это просто вообще никогда не нужно.
Нужно вызывать только то, что МОЖНО вызывать, что было придумано для того, чтобы БЫТЬ ВЫЗВАННЫМ.

В какой-то мере в предыдущем post дан ответ
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799873
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012 - (1) производить demangle без использования UnDecorateSymbolName function http://msdn.microsoft.com/en-us/library/windows/desktop/ms681400(v=vs.85).aspx.

- (2) вызывать во время run-time работы программы на выполнение функции из произвольных dll


Если речь о произволных dll, как Вы планируете решение следующей проблемы ( http://support.microsoft.com/kb/168958/en-us):
To Export an STL Class

1. In both the DLL and the .exe file, link with the same DLL version of the C run time. Either link both with Msvcrt.lib (release build) or link both with Msvcrtd.lib (debug build).

т.е. если библиотечная функция возвращает STL класс, необходимо, чтобы программа и библиотека были собраны с одинаковыми runtime?
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799881
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x1ca4064как Вы планируете решение следующей проблемы
Ну система не будет монолитной и программисты смогут расширять ее другими объектами.
По всей видимости будут некоторые ограничения /соглашение/ на правила кодирования.
В частности на параметры и возвращаемые значения.

PS: Насколько продвинуто удастся решить этот вопрос не знаю ...
На первом этапе сделаю возможность выполнения функций, использующих стандартные типы.
Ну а затем буду улучшать /нужно же с чего-то начинать, а не грезить фантазиями/
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799889
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012,

чем всё это лучше чем COM?
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799894
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилчем всё это лучше чем COM?
Если хватит сил довести проект "до кондиции", то у программистов появится гораздо
больше времени на лазанье по internet ... ...
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799904
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012у программистов появится гораздо больше времени на лазанье по internet
.... ...
У каких программистов? Тех, которые сейчас 24 часа в сутки программируют калькуляторы?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799906
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petalvikТо есть сама идея вызывать любую функцию изначально абсурдна.
Интересно откуда /не применительно к petalvik/ зачастую так и брызжет категоричность
в суждениях?
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799908
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovУ каких программистов? Тех, которые сейчас 24 часа в сутки программируют калькуляторы?..
Нет у тех, которые используют firebird.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799911
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Нет - у тех, которые используют firebird
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799916
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Нет у тех, которые используют firebird.
а что такого специфичного у Firebird?
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799918
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012у тех, которые используют firebird.
Но им не надо вызывать "разные функции из разных DLL". Они работают исключительно с
fbclient.dll и сигнатуры всех функций в ней описаны раз и навсегда.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799920
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

речь видимо об EXTERNAL FUNCTION
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799922
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На внешние функции накладываются вполне конкретные ограничения и эти функции опять выпадают из категории "любые".
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799927
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovНа внешние функции накладываются вполне конкретные ограничения и эти функции опять выпадают из категории "любые".
Нет речь идет о том, что firebird - источник данных для какого-то прикладного решения.
Так вот экономия времени будет в использовании rapid системы для решения задачи.

PS: Ребят ну у меня уже начинают щеки краснеть ...
Еще ни чего нет.
Что мы обсуждаем?

Ну планов много.
В частности в rapid систему будут интегрированы многие технологи /в частности OpenGL/
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799930
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Нет речь идет о том, что firebird - источник данных для какого-то прикладного решения.
а если PostgreSQL -то система работать не будет?
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799933
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропила если PostgreSQL -то система работать не будет?
Ряд технологий интегрирую в частности ODBC.
Если разработчики firebird посчитают нужным интегрировать в rapid систему, то допишут новый объект
/не plugin. А может быть можно сказать, что и plugin. Разница будет в том, что object будет восприниматься
как стандартный объект системы ... Какой функционал разработчик выставит, то и будет поддержан
системой. А можно и ничего не делать. Тогда developer будет использовать, то что поддержано самой
системой - ODBC/.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799934
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012 Нет речь идет о том, что firebird - источник данных для какого-то прикладного решения.
Так вот экономия времени будет в использовании rapid системы для решения задачи.В каком месте RAD доступ к данным становился "медленным звеном"???
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799939
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovВ каком месте RAD доступ к данным становился "медленным звеном"???
Дело не в firebird.
Ответ был дан на утверждение "Тех, которые сейчас 24 часа в сутки программируют калькуляторы?."
Просто напомнил Dimitry Sibiryakov, что кроме разработки калькулятора систему можно будет
использовать и для других целей.
Например разработки информационных систем, использующих СУБД /может быть и для games подойдет/

PS: Ну вот напложу конкурентов.
Напишут 20-ть rapid систем. До меня очередь и не дойдет.
Да ни чего.
У меня припасено многооо чего вкусненького чего у других не видел.
Но об них после беты /альфу буду гонять сам как "сидорову козу"/
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799953
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предлагаю прекратить обсуждение не существующей rapid системы.
dll "мы" тоже решили не развивать.
Обоснование полезности вызова любой функции тоже вроде рассмотрели

PS: На мой взгляд, если имеется потребность в обсуждении темы -
"Rapid системы с которой бы я хотел работать", то для этого было бы лучше завести новый topic.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799955
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Обоснование полезности вызова любой функции тоже вроде рассмотрели
ну если разрабатывается очередной скриптовый язык - почему бы и не попытаться вызвать произвольную функцию.
а откуда возьмутся метаданные - из tlb, .net сборки, отдельно приложенного файла или явной декларации - какая разница.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799966
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилну если разрабатывается очередной скриптовый язык
В какой-то мере да.

PS: Ну а что такое 1С как не: оболочка + ядро + скриптовый язык.
Без языка ни как /говорить будет не чем/ ...
И каждый из них имеет свои фичи ...
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799968
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Что мы обсуждаем?вот это сообщество и пытается понять, что же мы обсуждаем )))) а в ответ: ещё ничего не реализовано, обсуждать нечего. И? пора, может, уже сформулировать тему, или вопрос, кмк )))
Или это блог?
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799973
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychИли это блог?
Да какой блог?
Я пытался многократно все свернуть к тебе поднятой в topic, а меня напрягли другими вопросами.

PS: Другие темы я не собирался обсуждать.
Но вопросы были заданы и сказать на это - "Отстань" не имел морального права.
Выше в topic ведь предложил открыть новый /-ые/ topic и в них обсудить интересующие вопросы.
Хотя по идее эти вопросы должны обсуждаться не подразделе "C++".
Потому и предлагаю закончить обсуждение.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799977
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012,

было трудно понять, что требуется.

libffi - смотрел? https://sourceware.org/libffi/

использование в разных интерпретаторах
http://luajit.org/ext_ffi.html
https://cffi.readthedocs.org/en/release-0.8/
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38799995
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилВладимир2012,
было трудно понять, что требуется.


Благодарю.
Ссылка http://luajit.org/ext_ffi.html была у меня.
Похоже https://sourceware.org/libffi/ выполняет то что мне нужно.
У меня правда декларацию функции программист может не задавать, так как программно получаю ее из dll путем demangle ...

PS: Скорее всего поспешил с вопросом в форум.
Пока тема думаю тема исчерпана.
Если интересно кому могу в этом topic доложить о результатах ...
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800005
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012У меня правда декларацию функции программист может не задавать, так как
программно получаю ее из dll путем demangle ...
Интересно, что ты получаешь в результате demangle обычной extern "C" stdcall функции?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800009
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Интересно откуда ... зачастую так и брызжет категоричность в суждениях?
Потому что вызывать любую функцию из любой dll - действительно абсурд.
Если два первых примера не убедили, приведу третий.
Вызовешь ты некую неизвестную функцию из левой dll, а она жёсткий диск отформатирует. Что дальше?

Вот чтобы такого не случалось, должен быть некоторый контракт (API), которому должны соответствовать вызываемые функции. Должны быть средства верификации безопасности сторонних dll, соответствующих контракту.
Это должно быть прописано в метаинформации. В управляемых средах - .NET, Java - это делается элементарно. В нативном коде нужно что-то изобретать.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800031
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне понятно почему возможность в рантайме сформировать массив аргументов и вызвать функцию нужна в других языках, где нет поддержки вызова внешних функций.
Что мне до сих пор не понятно, нафига это в С++, когда тут можно напрямую (средствами языка) вызвать любую функцию.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800035
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё более непонятно, что делать когда вызывающий и вызываемый скомпилированы не просто с разными рантаймами одного компилятора, а разными компиляторами и при этом не имеет никаких "предварительных договорённостей".
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800040
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petalvikВызовешь ты некую неизвестную функцию из левой dll, а она жёсткий диск отформатирует. Что дальше?
Так и твой винчестер будет отформатирован если возьму и добавлю в функцию какой-нибудь системной
библиотеки это действие.
Речь шла о программной возможности это сделать /это я считал само разумеющимся или что нужно
буквально все разжевывать?/.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800053
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovЕщё более непонятно, что делать когда вызывающий и вызываемый скомпилированы не просто с разными рантаймами одного компилятора, а разными компиляторами и при этом не имеет никаких "предварительных договорённостей".
Да вроде же уже объяснял необходимость ...

PS: Вот мне подсказали ссылку https://sourceware.org/libffi/.
Почитай о чем там.
У меня вариация той же темы /не более того/.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800055
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012У меня вариация той же темы /не более того/.Соглашения по вызовам это фигня.
С памятью как работать будем?
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800056
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petalvikВ нативном коде нужно что-то изобретать.
всё украдено придумано до нас
и внедряемый манифест и цифровая подпись для нативного кодв
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800057
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyЧто мне до сих пор не понятно, нафига это в С++, когда тут можно
напрямую (средствами языка) вызвать любую функцию.
С оговоркой "заранее известную". В той же Firebird приходится неприятно выкручиваться для
вызова User-Defined Function.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800060
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovСоглашения по вызовам это фигня.
С памятью как работать будем?
управление памятью - часть соглашений о вызовах(CoTaskMemAlloc,GlobalAlloc,NetApiBufferAllocate и т д)
ну а если malloc - то приплыли, только загружать в отдельный процесс и воевать там
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800064
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О чём и речь - бессмысленно пытаться делать интерфейс к "вызвать функцию любой DLL", если этим невозможно пользоваться.
А пользоваться невозможно, т.к. раньше или позже мы натолкнёмся на те или иные глобальные вещи и начнём разрабатывать некое специализированное API.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800070
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovС памятью как работать будем?
https://sourceware.org/libffi/ Я еще толком не разбирался с этой библиотекой.
Хотя вот в manual сказано:
"For instance, an interpreter may be told at run-time about the number and types of arguments used to call a
given function. Libffi can be used in such programs to provide a bridge from the interpreter program to
compiled code.
"
Что тебя смущает, то?

Интерпретатор некоим образом понимает, что производится вызов функции, определяет тип возвращаемого
значения, аргументов, распределяет память, вызывает run time функцию ...
/это всего лишь пример. На самом деле все будет "так да не так"/.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800077
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Что тебя смущает, то?То, например, что в своё время я изучал SAA REXX API и знаю, что соглашения о вызовах эта мелочь, на которую, в общем-то, можно не обращать внимания. И автоматическое распознавание сигнатур никак не меняет ситуацию.
Семантика, в общем, много важнее синтаксиса, а искусственный интеллект так и не создан.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800079
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovС оговоркой "заранее известную". В той же Firebird приходится неприятно выкручиваться для
вызова User-Defined Function.
Система знает о тех dll c которыми она будет работать, а значит /грубо говоря/ знает все об,
имеющихся там функциях /тип возвращаемого значения, количество, порядок и типы параметров/.
Кроме того имеется некая meta информация об назначении функций /предположим к какой категории
она относится/, ...
Какую-то часть данных можем получать на этапе получения псевдокода.
При этом в боевых условиях будет использоваться не псевдокод, а машинный
В какой-то мере те же идеи по оптимизации выполнения, что и в .Net ...
Некоторые скажут, а зачем мне все это если уже имеется .Net.
И по своему будут правы.
Мне так придется решать эти вопросы в силу той задачи, которую решаю.

PS: Скажете зачем все это?
Ну так такой же вопрос можете задать разработчикам интерпретаторов, ... ...
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800080
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Basil A. SidorovС памятью как работать будем?
https://sourceware.org/libffi/ Я еще толком не разбирался с этой библиотекой.
Хотя вот в manual сказано:
"For instance, an interpreter may be told at run-time about the number and types of arguments used to call a
given function. Libffi can be used in such programs to provide a bridge from the interpreter program to
compiled code.
"
Что тебя смущает, то?

Интерпретатор некоим образом понимает, что производится вызов функции, определяет тип возвращаемого
значения, аргументов, распределяет память, вызывает run time функцию ...
/это всего лишь пример. На самом деле все будет "так да не так"/.Ты не правильно переводишь.

an interpreter may be told at run-time = в рантайме интерпретатору могут сказать.
Он (интерпретатор) не сам понимает, а ему говорят.

Вот это и есть камень преткновения во всем этом топике. Ты желаешь чтобы вызывающий сам всегда понимал какие там параметры требуются. Мы говорим что в универсальном виде это не решается. Да и в не универсальном виде нужно чрезвычайно редко.

Да, в некоторых случаях нужно и можно сделать вызов функции из внешнего модуля если ты не знаешь ее списка параметров, но это нужно чрезвычайно редко. Настолько редко что я сейчас сходу даже не могу назвать когда мне это бывало необходимо. Но каждый раз это все равно решалось более элегантно и проще через враппер с заранее определенным числом параметров.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800084
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovСемантика, в общем, много важнее синтаксиса,
При создании объекта системы конечно будет оговорен API, который все "донесет" об всех своих
талантах. И научит систему в каких случаях и по какому случаю к нему можно обратиться.
Посмотри например в 1С на раздел создания внешних компонент.
У меня все будет не так организовано, но суть останется та же.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800088
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Посмотри например в 1С на раздел создания внешних компонент
ну на это лучше не смотреть.

в вот P/Invoke из .net - куда больше информации даст о вызове функций из dll
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800096
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlДа, в некоторых случаях нужно и можно сделать вызов функции из внешнего модуля если ты не знаешь ее списка параметров,
Опять двадцать-пять.
Мне нужна возможность run-time выполнения функции, о которой система знает все.
Семантику, назначение функции, параметрах, ...
Т.е. как бы meta информация вся есть и согласно этим данным обеспечиваем ее вызов на выполнение.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800100
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилну на это лучше не смотреть
Ну а почему бы и нет.
Чем не пример?
Разработчик создает внешнюю компоненту который для 1С становится родным объектом.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800121
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012White OwlДа, в некоторых случаях нужно и можно сделать вызов функции из внешнего модуля если ты не знаешь ее списка параметров,
Опять двадцать-пять.
Мне нужна возможность run-time выполнения функции, о которой система знает все.
Семантику, назначение функции, параметрах, ...Тогда что тебе не нравится в нынешней DLL?
Ты сам себе противоречишь. То ты страдаешь от отсутствия мета-инфы, то она у тебя уже есть.

Так что, да. Опять двадцать-пять. Опиши задачу которую ты решаешь. Не можешь? Это торговая тайна? Тогда ты просто необразованный болтун. Ну или троль, что еще хуже.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800122
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Изопропилну на это лучше не смотреть
Ну а почему бы и нет.
Чем не пример?
Разработчик создает внешнюю компоненту который для 1С становится родным объектом.И? Ты прямо сейчас это можешь взять и сделать.
Делаешь модуль соблюдая API описанный в документации на 1С и получаешь свой собственный "родной объект". Что тебя останавливает?
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800127
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Чем не пример?
пример.

Но есть и получше,
Python -C и вариации типа cython
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800138
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlТы сам себе противоречишь. То ты страдаешь от отсутствия мета-инфы, то она у тебя уже есть.
Из самого первого topic ясно было сказано, что я знаю и тип возвращаемого значения и данные об
параметрах /путем demangle из dll/.
Но те кто читают topic по диагонали слева на право, а другие с право на лево и при этом пропускают
блоками текст прицепились ко мне с претензиями - зачем тебе выполнять неизвестно какую функцию и
не известно зачем.
Но так как меня не слушали, то я попытался пойти путем, требовавших от меня логичности
/так как по их мнению то чего я хочу ни когда не кому не нужно/.
Теперь ты меня обвиняешь в моей нелогичности
Вообщем ...

PS: Я не троль, но мне и самому это уже поднадоело. Да и раз 5 или более я уже предагал
прекратить обсуждение.

Механизм использования внешних компонент 1С это довольно удачный пример.
1С получает данные об названиях функций, и количестве параметров и на основании этих
данных с использованием IDispatch обеспечивает вызов функций.

... Опиши задачу которую ты решаешь.

Я что мало привел примеров ...

Давайте закончим на этом обсуждение /это уже не смешно .../

Тем более, что Изопропил привел неплохие ссылки и в принципе думаю он понял чего автор
хочет добиться - возможность run-time выполнения функции, о которой система знает все.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800140
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlДелаешь модуль соблюдая API описанный в документации на 1С и получаешь свой собственный "родной объект". Что тебя останавливает?
Да ни чего меня не останавливает.
Свою rapid систему пытаюсь разработатью
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800146
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слушайте перечитал придирчиво и многократно topic в котором попросил помощи.
Что в нем непонятного или абсурдного, что меня 20 или 30 раз просили рассказать чего я хочу?

PS: .
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800171
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012 Из самого первого topic ясно было сказано, что я знаю и тип возвращаемого значения и данные об
параметрах /путем demangle из dll/.Вот с самого первого вопроса тебя и спрашивают зачем ты это делаешь?
Если система знает все о вызываемой функции, то ей не нужно ничего про эту функцию узнавать. Уже и так все известно.

Если же о функции не известно хоть что-нибудь, то зачем эту функцию вызывать?
demangle имеет смысл делать только при взломе или поиске ошибки линковки, для реальной работы это совершенно не нужно. Если ты разрабатываешь библиотеку которая делает demangle то значит ты сумел придумать еще какую-то задачу. Вот это у тебя и спрашивают.

Владимир2012 Я что мало привел примеров ...Ты их вообще не привел.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800174
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Из самого первого topic ясно было сказано, что я знаю и тип
возвращаемого значения и данные об параметрах /путем demangle из dll/.
Видимо, один ты тут не знаешь, что во-первых, способ обработки имён компиляторозависимый,
а во-вторых, функции из DLL обычно экспортируются в С-форме.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800233
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owldemangle имеет смысл делать только при взломе или поиске ошибки линковки, для реальной работы это совершенно не нужно.
Изопропил же привел хорошие ссылки.
Зайди к примеру на http://luajit.org/ext_ffi.html.
Тот вопрос, который решаю конечно не типичный как бы это сказать для "пользовательских" задач.
А вот для интерпретаторов, ... - типичен.
demangle использую лишь для того, чтобы избавить программиста от передачи декларации функции.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800370
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир. Давайте ваши тезисы перенесём в блог в домене sql.ru.

А здесь - закончим.
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38800422
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012demangle использую лишь для того, чтобы избавить программиста от передачи декларации функции.
такие функции ещё поискать нужно.
то что мне встречалось - это функции, не предназначенные для вызова внешним кодом,
по ошибке попавшие в экспорт.

Да и сложности совсем не с прототипом, а скорее с указаниями по управлению памятью(который из сигнатуры никак не добыть)
-кто и когда должен выделить и освободить память, и каким механизмом(GlobalAlloc,CoTaskMemAlloc)
-строки NULL-terminated или со счётчиком (BSTR)
-при передаче массивов - как добыть длину (из какого параметра, с каким смещением, по ограничителю)
-входные-выходные

и т д
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38804727
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилДа и сложности совсем не с прототипом, а скорее с указаниями по управлению памятью(который из сигнатуры никак не добыть)

Любопытно услышать это.
Ведь topic и начинался с этого.

PS: М-да ...
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38804761
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012,

чтоб не придумывать свой язык для описания прототипов можно взять P/Invoke (из .net)
http://www.pinvoke.net/


просто парсить .h - не поможет - способ выделения памяти в документации описывается
...
Рейтинг: 0 / 0
Про улучшение DLL
    #38804807
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилчтоб не придумывать свой язык для описания прототипов можно взять P/Invoke (из .net)
Разработка не базируется на технологии .Net /а вот идеи заимствуются и из нее и из других технологий/.

PS: Думаю нужно закончить обсуждение в этом topic.
Если считаешь целесообразным, то дай мне свой e-mail ...
...
Рейтинг: 0 / 0
121 сообщений из 121, показаны все 5 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Про улучшение DLL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]