Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Использование DLL на VBA и VB Добавлено: 10.09.15 18:21  

Автор вопроса:  angrynews | Web-сайт: www.angrynews.ru
Привет, гуры VB!
У меня есть DLL, которая поставляется с софтом, который я линкую с VBA. Назовем этот софт - "МЕГАПРОГА". Все слинковано и нормально работает.

Теперь я хочу в VB написать свою DLL с частью кода VBA - грубо говоря, я хочу часть кода спрятать. В VBA этот код, который я хочу спрятать, сидит в отдельном bas-модуле. В этом коде используется DLL МЕГАПРОГИ.

Вопрос 1 - можно ли так сделать - в своей собственной DLL использовать стороннюю DLL, чтобы потом свою DLL подключить к VBA? И если да, то стороннюю DLL надо будет отдельно подключать к VBA или как?

Вопрос 2 - как, собственно, использовать вообще стороннюю DLL в VB? Пишу в VisualStudio 2015, ссылку добавил на DLL, увидел ее в окне Представления классов. Далее пробую добавить переменную этого класса и через нее использовать свойства, т.е. так, как делал в VBA, но что-то идет не так ))

Вот рабочий код VBA
    Dim netObject As New NET32COMLib.INetModel
          Dim localFluid As NET32COMLib.FluidModel
          
          netObject.OpenModel ("Строка как аргумент")

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 angrynews



Вопросов: 33
Ответов: 119
 Web-сайт: www.angrynews.ru
 Профиль | | #1
Добавлено: 10.09.15 18:23
Такая же конструкция в VB подчеркивает переменную NetObject и не видит свойство OpenModel

Ответить

Номер ответа: 2
Автор ответа:
 Dark



Вопросов: 4
Ответов: 41
 Профиль | | #2 Добавлено: 03.12.15 04:37
У тебя библиотека предоставляет COM-объект, для работы с ним тебе нужно подключить пространство имен System.Runtime.InteropServices. Вызовы будут несколько сложнее чем из VBA
https://msdn.microsoft.com/en-us/library/aa645736%28v=vs.71%29.aspx

Чтобы .NET библиотеку можно было использовать в VBA как COM-объект нужно отметить галочку "Make assembly COM-Visible" и зарегистрировать ее в реестре.
http://www.geeksengine.com/article/create-dll.html
Зарегистрировать библиотеку на другом компьютере можно через утилиту regasm.exe.
http://www.geeksengine.com/article/register-dll.html


Вообще переносить код из VBA в NET для его сокрытия-хреновая идея. .NET сборки прекрасно декомплируются обратно в исходный код, вплоть до возможности обратно скомпилировать.
Прекрасный беплатный декомплиятор dotPeek https://www.jetbrains.com/decompiler/download/

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам