powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Отладка ActiveX
23 сообщений из 23, страница 1 из 1
Отладка ActiveX
    #35794736
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день! Собрал свой ActiveX стал тестить из новго проекта... А как отладить его теперь?
...
Рейтинг: 0 / 0
Отладка ActiveX
    #35794759
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Отладка ActiveX
    #35794765
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо)))
...
Рейтинг: 0 / 0
Отладка ActiveX
    #35794936
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почти разобрался... Только вот... Компонент экспортирует 1 класс и 3 интерфейса класс я получаю через CreateObject, а вот когда пытаюсь получить интерфейс(public not createable) вылетает говоря мол пытаюсь передать ссылку на приватный объект... В чем беда? если играю как с ДЛЛ все гут...
...
Рейтинг: 0 / 0
Отладка ActiveX
    #35795508
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код в студию.
...
Рейтинг: 0 / 0
Отладка ActiveX
    #35796279
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Option Explicit

Sub main()
Dim c 'As New RTFParser.GclsRTFText
    Set c = CreateObject("RTFParser.GclsRTFText")
    c.colors.addcolor  255 ,  0 ,  0  [color=red]- тут вылетает[/color]
    c.Fonts.addfont "Tahoma"
    c.range( 1 ,  2 ).Size =  12 
    MsgBox c.RTF
End Sub

...
Рейтинг: 0 / 0
Отладка ActiveX
    #35796656
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего удивительного. У тебя класс LclsRTFColorTable объявлен как приватный, а именно его объект ты и пытаешься вернуть. То, что он реализует публичный интерфейс, рояля уже не играет.
...
Рейтинг: 0 / 0
Отладка ActiveX
    #35796666
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоже самое будет и с range и с colors.
...
Рейтинг: 0 / 0
Отладка ActiveX
    #35796777
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DLL то работает как надо... Да и по логике вещей смыс тогда возиться с интерфейсами если нужно объявить классы public?
...
Рейтинг: 0 / 0
Отладка ActiveX
    #35796949
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если "DLL то работает как надо", то откуда взялись проблемы?))
Насчет смысла — прочитайте какую-нибудь книжку про ООП вообще и интерфейсы в частности, вы явно не понимаете, для чего их придумали.
...
Рейтинг: 0 / 0
Отладка ActiveX
    #35797068
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy и интерфейсы в частности, вы явно не понимаете, для чего их придумали. ))))))
...
Рейтинг: 0 / 0
Отладка ActiveX
    #35797111
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в том что для отладки мне приходится каждый раз activeX dll переделывать в exe и назад, и расставлять св-ва классов, это нестрашно если таких классов 4, но хотелось бы знать как решать такие задачи без переделки проекта для отладки...
...
Рейтинг: 0 / 0
Отладка ActiveX
    #35797288
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таки получается, что нормально работает exe, а не dll, и это тоже не удивительно — все классы приватные. А задачи такие решать не нужно, нужно консерваторию править, чтобы не ставить неверных условий.

Интерфейсы имеют смысл в немногочисленных случаях. Например для поддержания совместимости новой версии com-компонента с программным обеспечением, написанным под старую версию. Новые функции описываются в новых интерфейсах, а к классу добавляется их реализация, старые при этом не затрагиваются. Пример — Internet Explorer и MSHTML, мои программы, написанные под IE6, не заметили перехода на IE7.
В проектах, не предполагающих com-версионность, интерфейсы могут понадобиться, если проект большой и использует конвейер, однородно обрабатывающий разнородные объекты — уместно реализовать в каждом некий интерфейс, с которым будет работать конвейер, дабы не косячить в параметрах. Типа Option Explicit для com.
...
Рейтинг: 0 / 0
Отладка ActiveX
    #35797322
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyТаки получается, что нормально работает exe, а не dll
Работает DLL, для отладки ее я каждый рах переделываю в EXE и обратно. С ООП я знаком очень хорошо, а вот ответа на поставленный вопрос не получил... Подозреваю, что так уж реализовано в VB... Спасибо.
...
Рейтинг: 0 / 0
Отладка ActiveX
    #35797670
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Grayscale,
что-то я не пойму. По тому, что я вижу, есть две проблемы:
1) отладка ActiveX DLL,
2) проблемы при передаче параметров объектного типа.
Давайте решим хотя бы первую. Фраза GrayscaleПроблема в том что для отладки мне приходится каждый раз activeX dll переделывать в exe и назад, и расставлять св-ва классов, это нестрашно если таких классов 4, но хотелось бы знать как решать такие задачи без переделки проекта для отладки... плюс приложенный проект говорит о том, что ссылка выше прочитана не была. А зря. Методика там расписана, как избежать лишних действий типа переделки в exe и назад, и не ходить по граблям.
Добавьте стандартный exe-проект, создав таким образом группу проектов.
Сделайте exe-проект стартовым.
Сделайте в нём ссылку на первый (dll) проект.
Сделайте тестовую процедуру в exe, если нужно тестировать взаимодействие клиента и in-proc сервера.
Или, если хочется сделать какое-то внутреннее тестирование в dll, то, как вариант, оставьте в ней тестовую процедуру Main и укажите её стартовым объектом в свойствах dll-проекта, а в exe-проекте сделайте процедурку с созданием public-объекта из dll. При первом создании такого объекта отработает Main в dll (поставьте точки останова). Ну, и т.д., почитайте, не поленитесь. Это как рыбий жир - противно, но полезно.
...
Рейтинг: 0 / 0
Отладка ActiveX
    #35797895
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Grayscale
Работает DLL,
Ну где же она работает?
Код: plaintext
1.
2.
3.
Dim c 'As New RTFParser.GclsRTFText
    Set c = CreateObject("RTFParser.GclsRTFText")
    c.colors.addcolor  255 ,  0 ,  0  [color=red]- тут вылетает[/color]
Приложите тогда уж пример, где оно все работает так как вы считаете правильным.
...
Рейтинг: 0 / 0
Отладка ActiveX
    #35798579
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не работает исключительно при отладке
...
Рейтинг: 0 / 0
Отладка ActiveX
    #35798910
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если все сделано правильно, должно работать в обоих случаях.
Причем c.colors.addcolor не работает с выложенным вами архивом ни в одном.
У меня начинается когнитивный диссонанс)
...
Рейтинг: 0 / 0
Отладка ActiveX
    #35798993
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это последняя, рабочая версия...
...
Рейтинг: 0 / 0
Отладка ActiveX
    #35799165
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где отладочный проект? Где пресловутое c.colors.addcolor 255, 0, 0?
...
Рейтинг: 0 / 0
Отладка ActiveX
    #35799339
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrayscaleВот...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Option Explicit

Sub main()
Dim c 'As New RTFParser.GclsRTFText
    Set c = CreateObject("RTFParser.GclsRTFText")
    c.colors.addcolor  255 ,  0 ,  0  [color=red]- тут вылетает[/color]
    c.Fonts.addfont "Tahoma"
    c.range( 1 ,  2 ).Size =  12 
    MsgBox c.RTF
End Sub

...
Рейтинг: 0 / 0
Отладка ActiveX
    #35799842
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хммм…
То, что приватный объект может отдать публичный интерфейс, для меня новость.
Однако отладить его не трогая классы можно. В аттаче нужно обратить внимание на свойства Project1.vbp, дополнительный Module1 и start.vbs.
...
Рейтинг: 0 / 0
Отладка ActiveX
    #35799922
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотрю спасибо)))
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Отладка ActiveX
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]