|
0 / 0 / 0
Регистрация: 03.07.2012
Сообщений: 56
|
|
Совмещение с DLL26.07.2013, 09:53. Показов 1335. Ответов 13
Метки нет (Все метки)
Здравствуйте!
Такая задача. У меня есть программка, которая проводит некоторые вычисления. Теперь, отдельно от этой программы мне нужно создать точно такую же, но в DLL. При этом открываться на выполнение должна первая, но вычисления должны проводиться во второй. То есть я ввожу значения, по которым проводятся вычисления, в программу, которую написала как обычно через проект в с++, затем эти данные каким-то образом должны передаться в DLL, там должны пройти вычисления, и в конце, уже готовый результат должен снова вернуться в первую программку, и та, в свою очередь, вывести результаты на экран. (Возможно, мне нужно просто написать программку в DLL, используя интерфейс первой программки (форму), но задача была поставлена именно так, как я описала выше). Еще не приходилось ни разу сталкиваться с DLL, возможно кто-то понял, что мне нужно сделать и поможет советами, хотя бы с чего начать и как это можно реализовать. Спасибо.
0
|
|
| 26.07.2013, 09:53 | |
|
Ответы с готовыми решениями:
13
Кто может поделиться файлами ogg.dll, vorbis.dll и vorbisfile.dll - 32-х и 64-битными версиями? Затупил, скажите где взять libmysqld.dll, libmysqld50.dll, libmysqld51.dll |
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
||||||||||||||||
| 26.07.2013, 10:53 | ||||||||||||||||
|
Вам из своей программки просто нужно будет вызывать функции из длл (все как и раньше: передаете функции параметры, получаете от нее результат). Для этого к своему приложению прикрепите библиотеку длл (файл lib, создастся при компиляции длл) и подключите h-файл длл (#include mydll.h). Вот, для примера, простой файл Unit2.cpp для создания длл__
1
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 03.07.2012
Сообщений: 56
|
|
| 26.07.2013, 11:12 [ТС] | |
|
nick42, спасибо большое! Буду разбираться, пробовать.
Вопрос: 1 кусочек кода создан через dll, а 3-ий - это уже запись в отдельном проекте, с формой и т.п., правильно? Т.е. я могу просто свою программку переделать, написав вместо вычислений обращения к функциям из dll (при этом, изначально, создав файл dll с хэдером), где записаны непосредственно сами формулы, да?
0
|
|
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
| 26.07.2013, 11:41 | |
|
Да. Первым делом советую создать проект для длл и получить при его компиляции саму длл с либ - и 0 ошибок.
Хорошо, если есть средство просмотра экспорта длл, - там вы должны увидеть что-то наподобие...
1
|
|
|
0 / 0 / 0
Регистрация: 03.07.2012
Сообщений: 56
|
|
| 26.07.2013, 11:43 [ТС] | |
|
nick42, еще раз спасибо!!
0
|
|
|
0 / 0 / 0
Регистрация: 03.07.2012
Сообщений: 56
|
|
| 29.07.2013, 13:23 [ТС] | |
|
nick42, а Вы не подскажете, каким образом мне ввод в эдиты инициализировать?
И записать это нужно же в основную программу, а затем как-то вызывать в длл?
0
|
|
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
||
| 29.07.2013, 13:50 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 03.07.2012
Сообщений: 56
|
|
| 29.07.2013, 14:04 [ТС] | |
|
nick42, да, именно так. Не совсем понимаю только, как это сделать. Не напишите поподробней?
А на счет формы - так у меня только одна форма - основная, в основном проекте. А должны быть еще?
0
|
|
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
| 29.07.2013, 14:55 | |
|
Возможно я не правильно вас понял, поэтому лучше на примере.
В архиве два проекта: создание длл и простая форма с двумя эдитами и кнопкой. При нажатии на кнопку в длл посылается запрос с двумя параметрами (числа с плавающей точкой, считанные с эдитов). В ответ на этот запрос длл посылает рассчитанную сумму, которая будет помещена в лэйбл. Там все очень просто; если разберетесь, то легко сможете переместить свои функции из программы в длл, а ввод нужных данных организовать через эдиты.
1
|
|
|
0 / 0 / 0
Регистрация: 03.07.2012
Сообщений: 56
|
|
| 29.07.2013, 14:59 [ТС] | |
|
nick42, о, спасибо огромное!
Надеюсь, разберусь
0
|
|
|
0 / 0 / 0
Регистрация: 03.07.2012
Сообщений: 56
|
|||||||||||||||||||||
| 08.08.2013, 13:21 [ТС] | |||||||||||||||||||||
|
nick42, добрый день)
Уже несколько дней не могу понять, в чем мои ошибки, по нескольку раз переписывала все. Так вот, Вы не подскажете, что не так, только не ругайтесь сильно, если совсем худо дело... ![]() P.S: dll-ку подключила к основному проекту. Правда, статически, а динамическим связыванием, потому как со статикой тоже проблемы возникли -_- Вот одна из функций (самая коротенькая ).В dll:
0
|
|||||||||||||||||||||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
| 08.08.2013, 14:22 | |
|
Во вложении (архив 44) - два проекта (по Вашему коду); у длл всего одна функция (самая коротенькая). Программа что-то там выдает в лэйбл, - я надеюсь: то, что ей задали. Изменений я сделал пару, ну, может, три - не помню уже. Так что в основном у Вас все верно. Найдите эти "три отличия" и попробуйте в таком же тоне описать остальные функции (конечно, если с этой "коротенькой" все получилось...).
1
|
|
|
0 / 0 / 0
Регистрация: 03.07.2012
Сообщений: 56
|
|
| 08.08.2013, 14:30 [ТС] | |
|
nick42, спасибо еще раз! Буду разбираться
0
|
|
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
| 08.08.2013, 14:39 | |
|
Возможно, будут проблемы с файлом testdll.bpr. Тогда подмените его этим (во вложении), я его "подчистил".
0
|
|
| 08.08.2013, 14:39 | |
|
Помогаю со студенческими работами здесь
14
Сборка Qt: отучение Qt от mingw10.dll, libgcc_s_dw2-1.dll и других Qt***.dll Совмещение ПР Совмещение шейдеров Совмещение локалок Совмещение языков Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|