Путь проекта в Addin

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Путь проекта в Addin

Сообщение ger_kar » 09.11.2015 (Пн) 18:11

Хочу создать простейший Addin, задача которого бы была в момент открытия проекта добавлять путь папки в которой находится проект в список поиска Dll функцией SetDllDirectory. По сути нужно всего запустить одну единственную строчку кода. Это мой первый аддин, поэтому пытаюсь разобраться как они работают. Не смотря на всю кажущуюся простоту сразу нарисовались две проблемки:
1) Нужно чтобы аддин запускался не при старте VB IDE а при загрузке проекта. Если не загрузку изменить не возможно, то как тогда отловить момент загрузки проекта?
2) Как узнать путь к папке самого проекта?
Бороться и искать, найти и перепрятать

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Как отлаживать AddIn

Сообщение ger_kar » 21.11.2015 (Сб) 16:30

Возникла проблема с отладкой AddIn'а. Можно ли AddIn вообще отлаживать и если да, то как?
Прочитал эту статью, но у меня так почему то не работает.
1) Сделал проект из стандартного шаблона Addin.
2) Поменял название на свое и сохранил. (Проект в приложении).
SetDllDirectory.rar
(4.4 Кб) Скачиваний: 131

3) Создал еще один проект Standart EXE.
4) Запустил первый.
5) В проекте Standart EXE открываю Add-In Manager и вижу в списке свой AddIn.
Addin Manager.png
Addin Manager.png (15.89 Кб) Просмотров: 2740

6) Выбираю его, устанавливаю на загрузку и жму ОК.
И получаю такой облом
Error.png
Error.png (6.44 Кб) Просмотров: 2740
Бороться и искать, найти и перепрятать

Diamock
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 388
Зарегистрирован: 26.10.2009 (Пн) 4:19
Откуда: Кемерово

Re: Путь проекта в Addin

Сообщение Diamock » 21.11.2015 (Сб) 17:36

Загрузил, распаковал, запустил - всё работает.
Вложения
Screen.png
Screen.png (9.95 Кб) Просмотров: 2736
In der Beschrankung zeigt sich erst der Meister
Графоманю...

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Путь проекта в Addin

Сообщение ger_kar » 21.11.2015 (Сб) 17:52

Diamock писал(а):Загрузил, распаковал, запустил - всё работает.
А последовательность действий? Такая же как я описал?
Бороться и искать, найти и перепрятать

Diamock
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 388
Зарегистрирован: 26.10.2009 (Пн) 4:19
Откуда: Кемерово

Re: Путь проекта в Addin

Сообщение Diamock » 21.11.2015 (Сб) 17:55

ger_kar, если я правильно понял, что тебе нужно...
Код: Выделить всё
Private Sub OKButton_Click()
    Dim var1 As VBProject
    Dim var2 As String
   
    Set var1 = VBInstance.ActiveVBProject
    var2 = var1.FileName
    MsgBox "Путь к файлу проекта:" & var2
   
    'MsgBox "AddIn operation on: " & VBInstance.FullName
   
End Sub

Screen2.png
Screen2.png (9.92 Кб) Просмотров: 2733

Последовательность действий следующая:
    1. Открываю проект Add-In'а
    2. Запускаю проект.
    3. Сворачиваю IDE с проектом Add-In'а.
    4. Запускаю второй экземпляр VB.
    5. Ставлю галочку Loaded/Unloaded.
    6. В меню запуская Add-In.
In der Beschrankung zeigt sich erst der Meister
Графоманю...

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Путь проекта в Addin

Сообщение ger_kar » 21.11.2015 (Сб) 18:25

Не совсем, мне как таковой графический интерфейс не нужен, с таким же успехом, я могу ввести команду в окно Immediate. А хотелось чтобы аддин реагировал на событие открытия проекта или группы проектов и сам добавлял эту папку вызовом функции SetDllDirectory. Чтобы поставил этот Addin и как говориться забыл.
А также хотелось бы понять, почему у меня в отладочном режиме Addin не хочет загружаться.
Бороться и искать, найти и перепрятать

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Путь проекта в Addin

Сообщение ger_kar » 21.11.2015 (Сб) 18:36

Diamock писал(а):Последовательность действий следующая:1. Открываю проект Add-In'а2. Запускаю проект.3. Сворачиваю IDE с проектом Add-In'а.4. Запускаю второй экземпляр VB.5. Ставлю галочку Loaded/Unloaded.6. В меню запуская Add-In.
Делаю все тоже самое, но у меня ничего не получается. Может что то с самим VB. Но в таком случае и другие бы Addin'ы не запускались. Хотя конечно те другие в скомпилированном виде работают, а не в режиме отладки.
Бороться и искать, найти и перепрятать

Diamock
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 388
Зарегистрирован: 26.10.2009 (Пн) 4:19
Откуда: Кемерово

Re: Путь проекта в Addin

Сообщение Diamock » 21.11.2015 (Сб) 18:57

А хотелось чтобы аддин реагировал на событие открытия проекта или группы проектов и сам добавлял эту папку вызовом функции SetDllDirectory.

Куда добавлял?
Попробуй сохранить проект Add-In'а в другую папку, например C:\SetDllDir.
In der Beschrankung zeigt sich erst der Meister
Графоманю...

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Путь проекта в Addin

Сообщение ger_kar » 21.11.2015 (Сб) 19:30

Diamock писал(а):Куда добавлял?
В список папок для поиска. По умолчанию VB в режиме отладки ищет dll в папке с приложением и в папках, которые прописаны в переменной окружения PATH. Но проблема в том, что папка с приложением - это папка с самим VB6, откуда он был запущен, а не папка с проектом. Поэтому в режиме отладки VB не может найти библиотеку в папке с проектом. Вызов SetDllDirectory добавляет папку с проектом в список поиска и все начинает работать как надо. Но каждый раз вызывать SetDllDirectory муторно, да и время нужно беречь :) Вот и решил процесс автоматизировать.
Diamock писал(а):Попробуй сохранить проект Add-In'а в другую папку, например C:\SetDllDir.
Попробовал, результат тоже самый :)
Бороться и искать, найти и перепрятать

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Путь проекта в Addin

Сообщение ger_kar » 22.11.2015 (Вс) 7:23

Проблема с отладкой решилась путем отладки :)
Дело было в отсутствии файла vb6debug.dll в папке с VB6.
Бороться и искать, найти и перепрятать


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 7

    TopList