Реализация анализатора (парсера) формул времени выполнения |
Здравствуйте, гость ( Вход | Регистрация )
Реализация анализатора (парсера) формул времени выполнения |
AntonTatu |
4.3.2009, 17:56
Сообщение
#1
|
Студент Группа: Участник Сообщений: 48 Регистрация: 27.11.2008 Пользователь №: 437 Спасибо сказали: 0 раз(а) Репутация: 0 |
Всем привет !
Вопрос в следующем, имеется прога которая генерирует некоторую формулу (формула меняет количество своих параметров в зависимости от исходных значений в программе ), в этой же проге есть массив который использует полученную формулу в дальнейших расчетах, хочется создать из формулы dll ку и потом ее вызывать в нужном месте программы, как это сделать? С вызовом полученной dll я вроде бы разобрался, а вот как научить прогу генерить dll ку понять не могу. ЗЫ: Какие можно использовать компилятор/линковщик (минимум занимаемого места, требуемых для работы файлов, потдержка STL требуется) Выручайте ! Спасибо ! |
|
|
kuler |
4.3.2009, 18:13
Сообщение
#2
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
если в студии, то там всего лишь надо указать тип выходного файла
|
|
|
Litkevich Yuriy |
4.3.2009, 18:24
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
а вот как научить прогу генерить dll ку понять не могу. ни как, надо создать проект для dll'кисм тему |
|
|
SABROG |
4.3.2009, 18:26
Сообщение
#4
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Можно таскать вместе с программой MinGW
Зачем генерить dll? Лучше скрипты генерить. |
|
|
ViGOur |
4.3.2009, 18:31
Сообщение
#5
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
SABROG, думаю твой пост не к месту.
Просто есть два варианта: AntonTatu, не совсем понимает, как и что раюотает и что должно происходить или он прекрасно понимает что ему нужно, но не правильно объяснил. Надеюсь вы знаете насчет криптованных exe файлов, которые сами себя перевоссоздают, правда это относится к вирусо писательству. |
|
|
SABROG |
4.3.2009, 18:42
Сообщение
#6
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
|
|
|
trdm |
4.3.2009, 19:38
Сообщение
#7
|
Дмитрий Трошин Группа: Участник Сообщений: 575 Регистрация: 12.1.2008 Пользователь №: 68 Спасибо сказали: 21 раз(а) Репутация: 6 |
А я вообще не врубился в "генерирует формулу"....
Очень смахивает на патерн интерпретатор, название которого уже и есть решение: использовать интерпретатор и создавать не формулу, а файло на скриптовом языке... и юзать его... или я ничерта не понял..... Короче, автор, используй встроенный интерпретатор. Сообщение отредактировал trdm - 4.3.2009, 19:40 |
|
|
AntonTatu |
4.3.2009, 20:25
Сообщение
#8
|
Студент Группа: Участник Сообщений: 48 Регистрация: 27.11.2008 Пользователь №: 437 Спасибо сказали: 0 раз(а) Репутация: 0 |
Человеку надо генерить dll, я предложил единственно правильный способ как для linux, так для windows - кроссплатформенная компиляция (MinGW). В принципе надо всего-то сгенерить С++ файл и вызвать компилятор с параметрами. Попробую объяснить по другому: Во время выполнения программы из рисунка по некоему алгоритму составляется формула в конце концов принимающая вид типа: QString str = "A+B*C+D*E+G" переменные этой формулы (числовые значения A, B, C и т.д.) на момент компиляции программы не известны, длинна формулы (количество переменных ) то же, может быть и такой вариант: A+A+A*D*E+B+C, соответственно единственный выход (который я вижу) это: 1.Запустить программу, получить формулу 2.Загнать формулу в фунцию, создать с этой функцией C++ файл 3. Создать из этого C++ файла библиотеку dll 4. Использовать этот dll в программе 5. Получить числовой ответ PS: Формула может быть огромна, разбирать ее на лету с помощью ну к примеру конечных автоматов нереально долго (пробовал) Как сохранить формулу в текстовый файл (С++) проблемы нет, как использовать созданную dll вроде то же понятно (в Google есть) Вопрос в том какой компилятор (С++) использовать ? (должен уметь STL и требовать как можно меньше файлов для запуска себя (один экзешник и все было бы замечательно), что бы вместе со своей прогой еще и 200 мб, компилятора не таскать) , может есть где пример вызова компилятора из командной строки очень поможет. И еще вопрос, какие компиляторы можно использовать если я пишу софт на продажу (ну это так для общего развития) Что то прочитал свой опус, наверно опять непонятно объяснил, не суть вопрос больше касается именно выбора компилятора. А я вообще не врубился в "генерирует формулу".... Очень смахивает на патерн интерпретатор, название которого уже и есть решение: использовать интерпретатор и создавать не формулу, а файло на скриптовом языке... и юзать его... или я ничерта не понял..... Короче, автор, используй встроенный интерпретатор. зачем придумывать интерпритатор, если можно воспользоваться обычным вызовом dll ки, весь вопрос в том как ее правильно создавать используя сторонние компиляторы C++ из командной строки ? (так полюбому быстрее будет, а скорость в моем случае очень важна) а пример использования файла на скриптовом языке где можно посмотреть ? |
|
|
Admin |
4.3.2009, 20:32
Сообщение
#9
|
Администратор Группа: Администратор Сообщений: 646 Регистрация: 9.10.2007 Из: crossplatform.ru Пользователь №: 1 Спасибо сказали: 17 раз(а) Репутация: 2 |
SABROG, перечитал твое сообщение, и решил извиниться перед тобой. ЭТО Я БЫЛ НЕ ПРАВ! Извини, не понял, что ты имел ввиду.
p.s. удаленный тобой пост вернул на место. Нужно больше отдыхать, мне. |
|
|
Litkevich Yuriy |
4.3.2009, 20:40
Сообщение
#10
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
AntonTatu, а QtScript тебе для этих целей тоже не подходит?
|
|
|
Текстовая версия | Сейчас: 14.1.2025, 13:22 |