Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.98/43: Рейтинг темы: голосов - 43, средняя оценка - 4.98
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22

Подключить библиотеку dll

01.03.2017, 09:35. Показов 13124. Ответов 166
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Данным диалектом Бейсика не пользуясь, но иногда здесь бываю. Решил немного поучаствовать. Собственно вопрос в следующем: можно ли пользоватся сторонними библиотеками в этом диалекте, насколько сложен процесс использования? Цель - есть своя xll для VBA, можно убрать обертку будет dll, выложу здесь для тех кто много считает, большими числами) (Гугл не спрашивал ибо важно понять, есть целесообразность в данном продукте?)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.03.2017, 09:35
Ответы с готовыми решениями:

Не получается подключить библиотеку Unmanaged.dll (Firefox nss3.dll)
Здравствуйте, начал изучать c#, очень понравилась тема декриптования, для начала решил из исходников собрать приложение для декриптования и...

Подключить библиотеку dll
Имеется программа nircmd.exe, которая с помощью батника позволяет выполнять различные комманды К примеру запуск батника NirCmd.exe exec...

Как подключить dll библиотеку?
Здраствуйте, есть такой вопрос, как можно подключить *.dll библиотеку к код блокс или к вижал студио?

166
Модератор
10067 / 3912 / 885
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
27.03.2018, 16:07
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от bedvit Посмотреть сообщение
The trick, как?
Также как к примеру в функцию OleLoadPicture передается объект IStream. Также как к примеру объект возвращается из функции Direct3DCreate9.
Цитата Сообщение от bedvit Посмотреть сообщение
Зачем тогда полвинды и весь офис на сом объектах?
Потому что это намного удобней.
0
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
28.03.2018, 14:04  [ТС]
The trick, не знаком с ними. Не знаю как работают. Надо погуглить. Ведь там то же реализуется интерфейс СОМ\ОLE?

Добавлено через 3 минуты
Как компилятор знает об объекте\классе? Есть манифест\ реестр?

Добавлено через 1 час 40 минут
Цитата Сообщение от Quiet Snow Посмотреть сообщение
У меня 32 битный компиль, на 64 пока не планировал
перескакивать.
Это жаль)
Цитата Сообщение от Quiet Snow Посмотреть сообщение
нюансы 64 бит *.dll.
а что за нюансы? Как по мне, x32 отмирает понемногу...

Добавлено через 13 часов 58 минут
m-ch, решение подключается к многим языкам. Протестируете на своих используемых?
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
28.03.2018, 16:01
Цитата Сообщение от bedvit Посмотреть сообщение
а что за нюансы? Как по мне, x32 отмирает понемногу...
Ни разу не отмирает. С чего вы взяли? Совместимость поддерживается.
Ещё очень надолго будет хватать для самых обычных задач. А всякие проектные
области туда уже давно скакнули.
0
Модератор
10067 / 3912 / 885
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
28.03.2018, 16:49
Цитата Сообщение от bedvit Посмотреть сообщение
The trick, не знаком с ними. Не знаю как работают. Надо погуглить. Ведь там то же реализуется интерфейс СОМ\ОLE?
Где?
Цитата Сообщение от bedvit Посмотреть сообщение
Как компилятор знает об объекте\классе? Есть манифест\ реестр?
И так и так.
0
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
30.03.2018, 12:23  [ТС]
Пока не решил, собирать ли х32 версии библиотек. Какие за и против.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
31.03.2018, 18:29
Цитата Сообщение от bedvit Посмотреть сообщение
Какие за и против.
Да против никто не будет, просто этим реально мало кто пользуется.
0
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
31.03.2018, 19:06  [ТС]
Quiet Snow, хочу скомпилировать х32 версию (нужно кое-где подкорректировать код), будет ли стоить усилий? к примеру вы сможете потестировать
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
31.03.2018, 19:10
Цитата Сообщение от bedvit Посмотреть сообщение
к примеру вы сможете потестировать
Ну как минимум попробую. А что там, голая *.dll и функции?
Если будет описание прототипов с типами данных, то почему нет.
Ваш код на vba вижу.
0
Эксперт по электронике
7172 / 3349 / 344
Регистрация: 28.10.2011
Сообщений: 13,191
Записей в блоге: 7
31.03.2018, 19:20
Цитата Сообщение от Quiet Snow Посмотреть сообщение
А что там, голая *.dll и функции?
Нет, там объектная модель COM. Из DLL экспортируется не функции, а объект, причем не напрямую, а после регистрации и по CLSID.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
31.03.2018, 19:40
Цитата Сообщение от locm Посмотреть сообщение
Нет, там объектная модель COM. Из DLL экспортируется не функции, а объект, причем не напрямую, а после регистрации и по CLSID.
Ну это печаль. Без примеров вызова на 3GL языках - не уверен, что что-то вообще получится.
Не программирую на 4GL, нет необходимости.

Добавлено через 15 минут
О ёпта, увидел:
https://www.cyberforum.ru/blog... g3550.html
Не, дядь, ну нафиг, это ж запаришься изучать и портировать.
Да ещё и VB ставить )))
Private Declare Function GetMem4 Lib "msvbvm60" ( _
ByRef src As Any, _
ByRef dst As Any) As Long
В собаку эти COM, это не для простых прогеров, а для элиты с 4GL гаубицами, где одной строчкой
бац и всё подключилось.
0
Эксперт по электронике
7172 / 3349 / 344
Регистрация: 28.10.2011
Сообщений: 13,191
Записей в блоге: 7
31.03.2018, 19:49
Я предлагал сделать процедурную DLL. Подключить библиотеку dll
Тем более что ничего не мешает совместить в одной библиотеке как процедурную часть, так и COM, как например это сделано в AutoItX3.dll.
Миниатюры
Подключить библиотеку dll  
1
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
31.03.2018, 20:19  [ТС]
locm, вам уже ответили что передается класс/объект. Если вы покажете как это сделать в процедурной (передать класс из С++ к примеру в VBA или 1С) я буду вам благодарен.
Quiet Snow, а в чем сложность, что нужно портировать, что изучать? вы на каком языке хотели dll протестировать?
0
Эксперт по электронике
7172 / 3349 / 344
Регистрация: 28.10.2011
Сообщений: 13,191
Записей в блоге: 7
31.03.2018, 20:31
Цитата Сообщение от bedvit Посмотреть сообщение
Если вы покажете как это сделать в процедурной (передать класс из С++ к примеру в VBA или 1С) я буду вам благодарен.
Выше на скрине показан пример DLL, одновременно COM и процедурной.
Что мешает поступить также?
Создаете как обычно COM DLL и дополняете ее экспортируемыми функциями.
0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
31.03.2018, 20:32
Цитата Сообщение от Quiet Snow Посмотреть сообщение
В собаку эти COM, это не для простых прогеров
Для FB есть AxSupport TypeLibraryBrowser. Генерирует все нужные заголовки найденных COM в системе сразу в коде FB.
Интегрируется с FBEdit. Всё уже придумано:
AxSupport is a library to support usage of COM/ActiveX in FreeBASIC.
in the latest update it has:
- Automation dispatch/invoke Call, close to disphelper (easiest)
- Native dispatch/invoke call, it use dispatch id to call function (faster)
- vTable call, it use C-style vTable (fastest)
- COM/ActiveX Event programming, ex-ADO DataControl event prog.
- it has FBEdit dialog control to layout ActiveX control in rc editor easily
Даже проще работать чем с обычными DLL, руками меньше писать. Если работает
На PureBasic тоже подобная программа была. Скормишь ей ActiveX, а она тебе сразу код готовый, только вызывай нужные функции в нужное время.
0
Модератор
10067 / 3912 / 885
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
31.03.2018, 20:44
Цитата Сообщение от locm Посмотреть сообщение
Нет, там объектная модель COM. Из DLL экспортируется не функции, а объект, причем не напрямую, а после регистрации и по CLSID.
Нет. Из DLL экспортируется функция DllGetClassObject. Объект получается посредством вызова функции DllGetClassObject. Регистрация необязательна.

Цитата Сообщение от Quiet Snow Посмотреть сообщение
Без примеров вызова на 3GL языках - не уверен, что что-то вообще получится.
Есть примеры, их куча.

Цитата Сообщение от Quiet Snow Посмотреть сообщение
В собаку эти COM, это не для простых прогеров, а для элиты с 4GL гаубицами, где одной строчкой бац и всё подключилось.
Там все достаточно просто. DirectX, OLE, ActiveX, Win Shell, etc. Формат модулей VST3 основан на COM:
VST-MA is a component model system which is used in any Steinberg host application as the basic layer for Plug-in support as well as for internal application components.
It is object-oriented, cross-platform and (almost) compiler-independent.
The basics are very much like Microsoft(R) COM, so if you are familiar with this technology, understanding VST-MA should be quite easy.
....
The first layer of VST-MA is binary compatible to COM. The Vtable and Interface Identifier of FUnknown match with the corresponding COM interface IUnknown. The main difference is the organization and creation of components by a host application.
Цитата Сообщение от locm Посмотреть сообщение
Тем более что ничего не мешает совместить в одной библиотеке как процедурную часть, так и COM, как например это сделано в AutoItX3.dll.
Мешает, к примеру маршалинг. В STA это все поддерживается на уровне системы.
0
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
31.03.2018, 22:05  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
одновременно COM и процедурной.
в чем смысл такой библиотеки? Делать интерфейс COM + функции в количестве 50 штук? (столько свойств и методов у двух классов). В чем профит? полвинды, весь офис это com. Excel - com объект.
В VB - CreateObject() (позднее связывание) и пользуйся... можно и раннее (в продукте поддерживаются dual -интерфейс).
В 1С - Новый COMОбъект() и пользуйся...
Можно напилить вообще без регистрации в реестре, но мне пока не получилось запилить манифест для dll (если только знающие люди помогут?)
0
Модератор
10067 / 3912 / 885
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
31.03.2018, 22:27
Цитата Сообщение от Quiet Snow Посмотреть сообщение
У меня 32 битный компиль, на 64 пока не планировал
Насколько мне известно в COM можно использовать компоненты разных разрядностей. В out-of-proc серверах это и так понятно, для in-proc серверов реализуется через DllSurrogate. Для клиента это все реализуется прозрачно - создал объект, и вызываешь методы. Теперь попробуйте тоже самое сделать через экспортируемые функции.
0
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
31.03.2018, 23:28  [ТС]
Мейнстрим с прошлого века - ООП, а вы все процедурное, процедурное.. )
Если серьезно, специально искал базу, подходящую под разные языки - нашел COM/OLE/Active X
Этот интерфейс и реализовал. В процессе общения не совсем понял какие трудности возникают с ним (создаешь объект CreateObject() - и работаешь со свойствами и процедурами как с функциями). Хотел бы послушать форумчан (профи и тех, кто в теме) как можно было бы проще поделится продуктом (2 класса со свойствами и процедурами) с пользователями других языков/компиляторов отличным от С/С++ в основном в среде win, с наименьшими телодвижениями для пользователя?
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
31.03.2018, 23:31
Цитата Сообщение от bedvit Посмотреть сообщение
Quiet Snow, а в чем сложность, что нужно портировать, что изучать? вы на каком языке хотели dll протестировать?
На FreeBasic, без ООП.

Цитата Сообщение от bedvit Посмотреть сообщение
а вы все процедурное, процедурное..
Так хватает жеж ёпта))) не до жиру быть бы жи́вым.
0
Модератор
10067 / 3912 / 885
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
31.03.2018, 23:37
bedvit, все правильно ты сделал. С COM так или иначе работают почти все компиляторы и интерпретаторы под Windows. Большая гибкость работы и множество функций и возможностей со стороны системы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.03.2018, 23:37

Как подключить .dll библиотеку?
Есть готовый код на С++ /*---------------------------------------------------------------------------- * * демонстрация ElByECC.DLL ...

Не могу подключить dll библиотеку
Вообщем есть библиотека Visa32.dll и я не могу ее подключить. Так же есть два заголовочных файла - Visa.h и visatype.h. В про файле...

Как подключить библиотеку 7z.dll?
Как подключить библиотеку 7z.dll. Я скачал архив с сурсами, откопал 7z.dll пытаюьс добавить в проект ошибка "Не удалось добавить сылка...

Как подключить библиотеку i7000.dll?
у меня есть библиотека i7000.dll библиотека необходимая для работы с com портами все остальное работает нормально а эта работает только с 3...

Как подключить библиотеку shell32.dll ?
Решил воспользоваться примером открытия файла с помощью необходимого приложения. В примере используется API, команда. Я сделал всё как...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru