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

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

01.03.2017, 09:35. Показов 13352. Ответов 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
Модератор
10068 / 3913 / 886
Регистрация: 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
Модератор
10068 / 3913 / 886
Регистрация: 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
Эксперт по электронике
7179 / 3355 / 346
Регистрация: 28.10.2011
Сообщений: 13,220
Записей в блоге: 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
Эксперт по электронике
7179 / 3355 / 346
Регистрация: 28.10.2011
Сообщений: 13,220
Записей в блоге: 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
Эксперт по электронике
7179 / 3355 / 346
Регистрация: 28.10.2011
Сообщений: 13,220
Записей в блоге: 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
Модератор
10068 / 3913 / 886
Регистрация: 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
Модератор
10068 / 3913 / 886
Регистрация: 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
Модератор
10068 / 3913 / 886
Регистрация: 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
Ответ Создать тему
Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru