Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/26: Рейтинг темы: голосов - 26, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 02.09.2010
Сообщений: 102

Подключение своей DLL к VBA-проекту

19.07.2006, 18:50. Показов 5022. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мои действия:

создаю DLL на VB 6.0:

File -> New Project -> ActiveX DLL
Visual Basic
1
2
3
Public Function Suma(ByVal a As Integer, ByVal b As Integer) As Integer
Suma = a + b
End Function
меняю имя, например: testDLL

File -> Make testDLL.dll

Сохраняю ее в C:windowssystem

Открываю EXCEL:

перехожу в редактор

Сервис -> Ссылки -> Обзор

ищу testDLL.dll, ставлю галочку.
Visual Basic
1
2
3
4
5
6
Option Explicit
 
Private Declare Function Suma Lib "testDLL.dll" ()
Sub ddd()
MsgBox Suma(5, 5)
End Sub
А он мне на это:

Не удается найти для DLL точку входа Suma для в testDLL.dll
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.07.2006, 18:50
Ответы с готовыми решениями:

Создание своей dll и подключение её к проекту
Всем привет. Я создал небольшую dll буквально из нескольких функций, скомпелировал, получил .dll файл, но вот при попытке подключить его...

Подключение своей DLL к проекту Release и Debug версию
Народ, подскажите как решается такой случай. Написал свою библиотеку DLL. Создал свою программу которая должна использовать эту...

Подключение к проекту своей библиотеки
Я хочу свои процедуры и функции подключать к проекту через #include <myfunc.h> Функции объявляю в файле myfunc.h, расположенный по адресу...

10
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
19.07.2006, 19:04
Visual Basic
1
2
3
4
5
Option Explicit
Private Declare Function Suma Lib "testDLL.dll" ()
Sub ddd()
MsgBox Suma(5, 5)
End Sub
Visual Basic
1
Private Declare Function Suma Lib "testDLL.dll" (ByVal a As Integer, ByVal b As Integer)
0
0 / 0 / 0
Регистрация: 02.09.2010
Сообщений: 102
19.07.2006, 19:17  [ТС]
И так пробовал, все равно тоже самое.
0
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
19.07.2006, 19:41
Я как-то лет этак пару назад попробовал сделать то же самое Только dll сделал в Power Basic. Ссылку на библиотеку не давал, а указал в объявлении функции полное имя файла (включая путь). Всё работало.
Попробуй ещё объявить функцию полностью:
Private Declare Function Suma Lib "testDLL.dll" (ByVal a As Integer, ByVal b As Integer) As Integer
0
0 / 0 / 0
Регистрация: 02.09.2010
Сообщений: 102
19.07.2006, 19:55  [ТС]
Никак.



Вот сама DLL:
0
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
19.07.2006, 21:10
C dll-кой результат такой же, как и у тебя.
В PowerBasic сделал другую (см. аттач). Попутно наткнулся на то, что в разных местах имя функции у тебя разное ("suma" и "Suma").
0
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
19.07.2006, 21:18
На всякий случай - объявлял функцию так:
Private Declare Function Suma Lib "Cownloads estDLL.dll" (ByVal a As Integer, ByVal b As Integer) As Integer
0
0 / 0 / 0
Регистрация: 02.09.2010
Сообщений: 102
19.07.2006, 21:46  [ТС]
Н-да...............



с твоей все отлично!



Т.е. из всего этого следует, что нужно забросить VB и переключиться на PB.



Пойду искать PB.



PS.

самое интересное что моя dll работает в VB 6.0

(в котором была сделана) без проблем, а в VBA никак.
0
1 / 1 / 1
Регистрация: 02.04.2009
Сообщений: 135
19.07.2006, 21:55
<TABLE cellSpacing=0 cellPadding=0 width="100% <TBODY><TR><TD class=SmallTxt width="80% <DIV id=ctl03_ctlTopic_ctlPanelBar_ctlTopicsR epeater_ctl18_smAuthorName_SimpleMenuDiv Layer onmouseover="InstantASP_OpenMenuMouseOve r('ctl03_ctlTopic_ctlPanelBar_ctlTopicsR epeater_ctl18_smAuthorName','ctl03_ctlTo pic_ctlPanelBar_ctlTopicsRepeater_ctl18_ smAuthorName_SimpleMenuDivLayer','<table width=100% class=PanelBar_OuterTable cellspacing=0 cellpadding=0><tr><td><table width=100% cellspacing=1 cellpadding=7><tr><td class=TableCell_Light><a href=UserInfo15853.aspx Class= 'SmlLinks ' Title= 'View Members Profile '>View Member 's Profile</a></tr><tr><td class=TableCell_Light><a href=BuddyIgnoreList1.aspx?Username=pois kxxx Class= 'SmlLinks ' Title= 'Add to Buddy List '>Add to Buddy List</a></tr><tr><td class=TableCell_Light><a href=javascript:__doPostBack( 'butSendPrivateMessage ', '15853 '); onMouseOver= 'window.status=window.location;return true; ' onMouseOut=window.status= ' 'return true; Class= 'SmlLinks ' Title= 'Send Private Message '>Send Private Message</a></tr><tr><td class=TableCell_Light><a href=javascript:__doPostBack( 'butSendEmail ', '15853 '); onMouseOver= 'window.status=window.location;return true; ' onMouseOut=window.status= ' 'return true; Class= 'SmlLinks ' Title= 'Send Email To Member '>Send Email To Member</a></tr><tr><td class=TableCell_Light><a href=javascript:__doPostBack( 'butShowMemberPosts ', '15853 '); onMouseOver= 'window.status=window.location;return true; ' onMouseOut=window.status= ' 'return true; Class= 'SmlLinks ' Title= 'Find All Members Posts '>Find All Member 's Posts</a></tr></td></tr></table></td></tr></table>','165px');" style="DISPLAY: inline" onclick="InstantASP_OpenMenu('ctl03_ctlT opic_ctlPanelBar_ctlTopicsRepeater_ctl18 _smAuthorName','ctl03_ctlTopic_ctlPanelB ar_ctlTopicsRepeater_ctl18_smAuthorName_ SimpleMenuDivLayer','<table width=100% class=PanelBar_OuterTable cellspacing=0 cellpadding=0><tr><td><table width=100% cellspacing=1 cellpadding=7><tr><td class=TableCell_Light><a href=UserInfo15853.aspx Class= 'SmlLinks ' Title= 'View Members Profile '>View Member 's Profile</a></tr><tr><td class=TableCell_Light><a href=BuddyIgnoreList1.aspx?Username=pois kxxx Class= 'SmlLinks ' Title= 'Add to Buddy List '>Add to Buddy List</a></tr><tr><td class=TableCell_Light><a href=javascript:__doPostBack( 'butSendPrivateMessage ', '15853 '); onMouseOver= 'window.status=window.location;return true; ' onMouseOut=window.status= ' 'return true; Class= 'SmlLinks ' Title= 'Send Private Message '>Send Private Message</a></tr><tr><td class=TableCell_Light><a href=javascript:__doPostBack( 'butSendEmail ', '15853 '); onMouseOver= 'window.status=window.location;return true; ' onMouseOut=window.status= ' 'return true; Class= 'SmlLinks ' Title= 'Send Email To Member '>Send Email To Member</a></tr><tr><td class=TableCell_Light><a href=javascript:__doPostBack( 'butShowMemberPosts ', '15853 '); onMouseOver= 'window.status=window.location;return true; ' onMouseOut=window.status= ' 'return true; Class= 'SmlLinks ' Title= 'Find All Members Posts '>Find All Member 's Posts</a></tr></td></tr></table></td></tr></table>','165px'); <A class=SmlBoldLinks id=ctl03_ctlTopic_ctlPanelBar_ctlTopicsR epeater_ctl18_smAuthorName onmouseover="window.status = window.location;return true;" title="View poiskxxx's Profile..." onmouseout="window.status=''return true;" href="javascript:void(''); poiskxxx</DIV></TD></TR></TBODY></TABLE>
не надо ругать VB (никому не позволю его забивать)... Никто тебе не поможет, если руки кривые...
Надо в Модуле Ex
0
0 / 0 / 0
Регистрация: 02.09.2010
Сообщений: 102
20.07.2006, 03:54  [ТС]
У меня нет слов............
Да - заработало, да - выдает результат...
Но какой? <STRONG><FONT color=#ff1111>0! </STRONG>(хоть 5+5, хоть 1+1 - все равно ноль) и размер dll-ки 20Kb.
Все-таки пошел искать PowerBasic и нашел его на одном из дисков от 20 июля 1991г. Да у меня тогда еще и компьютера не было. Ну и антиквариат!
Случайно наткнулся на статью о <STRONG>компиляторе VB в DLL</STRONG>
http://www.retranslator.ru/forums/messages/919/2667/all http://www.retranslator.ru/forums/messages/919/2667/all
http://scinspy.narod.ru/vb_dll.zip" target=_blank><EM><FONT color=#800080>http://scinspy.narod.ru/vb_dll.zip</EM> - сам <STRONG>компилятор VB в DLL</STRONG> <FONT color=#ff1111><STRONG>259Kb</STRONG> (говорят, что там кусок компилятоpа от Power Basic)
Ну и наконец-то получил, что 5+5=10!
0
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
20.07.2006, 19:37
Да - заработало, да - выдает результат... Но какой? 0! (хоть 5+5, хоть 1+1 - все равно ноль) и размер dll-ки 20Kb.
Вчера, чтобы тебе ответить, кроме PB поставил ещё и VB6 с SP5. Создал аналогичную dll (20Kb), подключил её к проекту в Excel, и получил, что 5+5=10
То, что твоя функция на выходе даёт при любых аргументах 0, я заметил, но не придал этому значения, поскольку задача подключения была решена, а dll всегда можно скомпилировать заново.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.07.2006, 19:37
Помогаю со студенческими работами здесь

Подключение dll к проекту
Всем здравствуйте! Мне нужно подключить dll библиотеку к проекту, обшарил весь яндекс и ютуб, ничего подходящего не нашлось. Подскажите...

Подключение dll к проекту Qt
Добрый день. В Qt недавно. Возникла проблема с подключением библиотеки lapack https://icl.cs.utk.edu/lapack-for-windows/lapack/ . Из...

Подключение DLL на C++ к проекту
Моим преподавателем было дано задание, в котором необходимо реализовать работу с ассемблерными вставками на C#. Так как подобным ранее я ни...

Подключение dll (C++) к проекту VB 6.0
Здравствуйте! Проблемма в подключении ДЛЛ к VB 6. есть библиотека на C++ //ConsoleApplication2.cpp: определяет точку входа для...

C# Подключение dll к проекту
День добрый, прошу помощи ибо у меня уже мозг кипит. Делаю проект по редактору баз данных, использую System.Data.SQLite.dll, но вот...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru