Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 1
Регистрация: 30.11.2015
Сообщений: 30

Добавить проект основную программу

06.12.2016, 13:26. Показов 406. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, я написал программу, от меня потребовали, чтобы я ее добавил в основную программу, как динамически подключаемую библиотеку. Как это реализовать? Так же есть инструкция небольшая
Для обеспечения возможности подключения внешнего модуля (плагина) к Универсальному калькулятору плагин должен быть представлен в виде динамически подключаемой библиотеки (DLL). Допускается DLL в структуре Borland или Microsoft Visual C++.

DLL должна включать две (если плагин выполняется в модальном режиме) или три (если плагин выполняется в немодальном режиме) функции с прототипами:

C++
1
2
3
4
5
extern "C" int __declspec(dllexport) InitInterface(char* (*calc)(char *exp), void (*out)(char **list), , HANDLE hWnd, int nMod);
 
extern "C" void __declspec(dllexport) Run(char*** msg);
 
extern "C" void __declspec(dllexport) FreeForm(char*** msg);
Функция InitInterface вызывается однократно при подключении DLL. Аргументами функции являются:

calc - указатель на функцию вычисления значения выражения,

out - указатель на функцию вывода текста в поле "Результаты вычислений",

hWnd - дескриптор (Handle) главного окна Калькулятора,

nMod - порядковый номер внешнего модуля (плагина) в списке Калькулятора.

Аргумент exp функции calc - указатель на строку, содержащую вычисляемое выражение или оператор. Возвращаемое значение функции calc - указатель на строку, содержащую результат вычисления выражения или указатель на пустую строку, если аргументом является оператор. Аргумент list функции out - указатель на массив указателей на текстовые строки, которые должны быть выведены в поле "Результаты вычислений". Признаком окончания массива указателей является значение 0. Параметры hWnd и nMod используются в плагине, работающем в немодальном режиме, при посылке сообщения Калькулятору (смотри ниже). Функция Init в составе DLL должна обеспечить запоминание значений указателей calc, out, hWnd и nMod во внутренней памяти DLL.

Но как это использовать в своей программе я не могу понять.

Добавлено через 1 час 17 минут
Нужно собственно сделать DLL библиотеку из этого, так скажем, внешнего модуля
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.12.2016, 13:26
Ответы с готовыми решениями:

Как создать CreateProcess не блокируя основную программу?
Как создать CreateProcess не блокируя саму программу? Нашёл вот это решение, но 2-й процесс почему-то не запускается!:( Помогите,...

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

Z не возвращается в основную программу
почему z не возвращается в основную программу , что не так? При компиляции выдает только значение 0, а по идеи должно выдавать 2. ...

5
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,154
Записей в блоге: 3
06.12.2016, 13:37
Marathon, легально подключаемые dll, изначально построены так,что куда они подключаются и в них самих заранее это заложено функционалом.
Как Вы думаете можно скрестить Skype и ICQ таким подключением?Нет. Так и Вам нужно заранее продумать механизм того что Вы подключаете и сможет ли это принять, то куда подключаете.
В вашем случае думаю надо писать с нуля dll.
0
0 / 0 / 1
Регистрация: 30.11.2015
Сообщений: 30
06.12.2016, 13:44  [ТС]
Есть калькулятор - это основная программа, есть моя Кажущаяся скорость на вращающейся Земле (Расчёт изменения во времени составляющих вектора кажущейся скорости, обусловленной действием реакции опоры на тело, стоящее на Земле). И мне ее нужно вставить в основную, тут только переписывать?
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,154
Записей в блоге: 3
06.12.2016, 14:30
Ну у Вас в самом задание написано, что писать не программу а сразу dll и даны связи с данными. Ну тут только переписывать.
1
0 / 0 / 1
Регистрация: 30.11.2015
Сообщений: 30
06.12.2016, 14:35  [ТС]
а можно ли как-то связать без переписывания, если не смотреть на задание?
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,154
Записей в блоге: 3
06.12.2016, 14:38
Marathon, Без бубнов, нет.
Более скажу самое простое, какраз написать dll с функциями расчета, чем писать бубны
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.12.2016, 14:38
Помогаю со студенческими работами здесь

Qt creator. Не удается добавить стороннюю библиотеку в проект cmake (добавление в проект boost/algorithm)
Собственно, весь вопрос в заголовке. Осваиваю cmake, не могу подключить "алгоритм" из буст. qtcreater говорит: ...

Возвращние параметра в основную программу
Всем привет! Как сделать так что бы значение St возвращалось в основную программу? p.s. В St записывается переменная типа ЗАПИСЬ,...

Execlp завершает основную программу
собственно сабж. как сие обойти?

Передача массива из DLL в основную программу
В DLL у меня происходят вычисления и в основную программу передается массив записей. Но, почему то после успешной отработки DLL я не могу...

Передача данных из Dll в основную программу
Есть dll в ней такой код : Получить данные из таблицы Db invoke mysql_real_query,hConn,SqlComm,lenn ; Выполняем операторSQL .if...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru