|
|
|
Отладка ActiveX
|
|||
|---|---|---|---|
|
#18+
Добрый день! Собрал свой ActiveX стал тестить из новго проекта... А как отладить его теперь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2009, 18:11 |
|
||
|
Отладка ActiveX
|
|||
|---|---|---|---|
|
#18+
Почти разобрался... Только вот... Компонент экспортирует 1 класс и 3 интерфейса класс я получаю через CreateObject, а вот когда пытаюсь получить интерфейс(public not createable) вылетает говоря мол пытаюсь передать ссылку на приватный объект... В чем беда? если играю как с ДЛЛ все гут... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2009, 19:31 |
|
||
|
Отладка ActiveX
|
|||
|---|---|---|---|
|
#18+
Вот... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2009, 13:42 |
|
||
|
Отладка ActiveX
|
|||
|---|---|---|---|
|
#18+
Ничего удивительного. У тебя класс LclsRTFColorTable объявлен как приватный, а именно его объект ты и пытаешься вернуть. То, что он реализует публичный интерфейс, рояля уже не играет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2009, 15:10 |
|
||
|
Отладка ActiveX
|
|||
|---|---|---|---|
|
#18+
Тоже самое будет и с range и с colors. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2009, 15:12 |
|
||
|
Отладка ActiveX
|
|||
|---|---|---|---|
|
#18+
DLL то работает как надо... Да и по логике вещей смыс тогда возиться с интерфейсами если нужно объявить классы public? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2009, 15:35 |
|
||
|
Отладка ActiveX
|
|||
|---|---|---|---|
|
#18+
Если "DLL то работает как надо", то откуда взялись проблемы?)) Насчет смысла — прочитайте какую-нибудь книжку про ООП вообще и интерфейсы в частности, вы явно не понимаете, для чего их придумали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2009, 16:09 |
|
||
|
Отладка ActiveX
|
|||
|---|---|---|---|
|
#18+
Antonariy и интерфейсы в частности, вы явно не понимаете, для чего их придумали. )))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2009, 16:39 |
|
||
|
Отладка ActiveX
|
|||
|---|---|---|---|
|
#18+
Проблема в том что для отладки мне приходится каждый раз activeX dll переделывать в exe и назад, и расставлять св-ва классов, это нестрашно если таких классов 4, но хотелось бы знать как решать такие задачи без переделки проекта для отладки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2009, 16:49 |
|
||
|
Отладка ActiveX
|
|||
|---|---|---|---|
|
#18+
Таки получается, что нормально работает exe, а не dll, и это тоже не удивительно — все классы приватные. А задачи такие решать не нужно, нужно консерваторию править, чтобы не ставить неверных условий. Интерфейсы имеют смысл в немногочисленных случаях. Например для поддержания совместимости новой версии com-компонента с программным обеспечением, написанным под старую версию. Новые функции описываются в новых интерфейсах, а к классу добавляется их реализация, старые при этом не затрагиваются. Пример — Internet Explorer и MSHTML, мои программы, написанные под IE6, не заметили перехода на IE7. В проектах, не предполагающих com-версионность, интерфейсы могут понадобиться, если проект большой и использует конвейер, однородно обрабатывающий разнородные объекты — уместно реализовать в каждом некий интерфейс, с которым будет работать конвейер, дабы не косячить в параметрах. Типа Option Explicit для com. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2009, 17:34 |
|
||
|
Отладка ActiveX
|
|||
|---|---|---|---|
|
#18+
AntonariyТаки получается, что нормально работает exe, а не dll Работает DLL, для отладки ее я каждый рах переделываю в EXE и обратно. С ООП я знаком очень хорошо, а вот ответа на поставленный вопрос не получил... Подозреваю, что так уж реализовано в VB... Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2009, 17:44 |
|
||
|
Отладка ActiveX
|
|||
|---|---|---|---|
|
#18+
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 (поставьте точки останова). Ну, и т.д., почитайте, не поленитесь. Это как рыбий жир - противно, но полезно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2009, 19:55 |
|
||
|
Отладка ActiveX
|
|||
|---|---|---|---|
|
#18+
Grayscale Работает DLL, Ну где же она работает? Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2009, 23:07 |
|
||
|
Отладка ActiveX
|
|||
|---|---|---|---|
|
#18+
Не работает исключительно при отладке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 11:42 |
|
||
|
Отладка ActiveX
|
|||
|---|---|---|---|
|
#18+
Если все сделано правильно, должно работать в обоих случаях. Причем c.colors.addcolor не работает с выложенным вами архивом ни в одном. У меня начинается когнитивный диссонанс) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 13:05 |
|
||
|
Отладка ActiveX
|
|||
|---|---|---|---|
|
#18+
Это последняя, рабочая версия... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 13:27 |
|
||
|
Отладка ActiveX
|
|||
|---|---|---|---|
|
#18+
Где отладочный проект? Где пресловутое c.colors.addcolor 255, 0, 0? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 14:12 |
|
||
|
Отладка ActiveX
|
|||
|---|---|---|---|
|
#18+
GrayscaleВот... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 14:54 |
|
||
|
Отладка ActiveX
|
|||
|---|---|---|---|
|
#18+
Хммм… То, что приватный объект может отдать публичный интерфейс, для меня новость. Однако отладить его не трогая классы можно. В аттаче нужно обратить внимание на свойства Project1.vbp, дополнительный Module1 и start.vbs. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 16:54 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=35796777&tid=2161364]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 343ms |

| 0 / 0 |
