Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Использование Collection в COM сервере
|
|||
|---|---|---|---|
|
#18+
Создали COM сервер, в котором в коллекцию можно положить и взять объекты. Таким образом можно передавать объекты между программами. Проблема в том, что если создать свой класс и попытаться его туда положить выдается ошибка "Object variable not set" (13). Как решить? Я так понимаю, что мой класс необходимо "зарегистрировать". Как это сделать? Спасибо =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2009, 11:59 |
|
||
|
Использование Collection в COM сервере
|
|||
|---|---|---|---|
|
#18+
> Автор: fedotxxl > Создали COM сервер, в котором в коллекцию можно положить и взять объекты. Таким образом можно передавать объекты > между программами. Проблема в том, что если создать свой класс и попытаться его туда положить выдается ошибка "Object > variable not set" (13). Как решить? без кода, врядли что-то получится. Так что ошибка в 17 строке > Я так понимаю, что мой класс необходимо "зарегистрировать". Как это сделать? Спасибо =) А вот этого совсем не понял, созданный СОМ сервер естесвенно нужно регистрировать. Если он в длл то regsvr32, если в ехе , то /installserver(кажется так) или ты о чем? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2009, 12:15 |
|
||
|
Использование Collection в COM сервере
|
|||
|---|---|---|---|
|
#18+
Код сервера авторVERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "ObjCollection" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = True Attribute VB_PredeclaredId = False Attribute VB_Exposed = True Public Function Add(Obj As Variant, key As String) As Variant On Error GoTo ErrAdd Add = True Call col.Add(Obj, key) Exit Function ErrAdd: Add = False End Function Public Function Item(key As String) As Variant On Error GoTo ErrItem Set Item = col.Item(key) Exit Function ErrItem: Set Item = Nothing End Function Public Function Remove(key As String) As Variant On Error GoTo ErrRemove Remove = True Call col.Remove(key) Exit Function ErrRemove: Remove = False End Function Public Function Count() As Long On Error GoTo ErrCount Count = col.Count Exit Function ErrCount: Count = 0 End Function Public Sub About() MsgBox "DuChan Object Collection" End Sub Как используем автор Dim db As NotesDatabase dim container as variant Set db = ns.currentDatabase Set container = CreateObject("DCN_Obj.ObjCollection") Call container.Add(a, "string") Работает. Пояснение - db - класс, который был написан в системе изначально (дело в том, что Visual Basic (достаточно старая его версия) используется как встроенный язык в системе, на нем реализованы изначально некоторые классы). Если сделать так автор Class myClass End Class dim a as myClass Set a = new myClass Set container = CreateObject("DCN_Obj.ObjCollection") Call container.Add(a, "myClass") Не работает, выдает ошибку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2009, 12:38 |
|
||
|
Использование Collection в COM сервере
|
|||
|---|---|---|---|
|
#18+
Variant - это вам не Object ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2009, 13:00 |
|
||
|
Использование Collection в COM сервере
|
|||
|---|---|---|---|
|
#18+
Konst_OneVariant - это вам не Object Это ты про что? Про "dim container as variant"? Все нормально работает в такой конструкции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2009, 13:12 |
|
||
|
Использование Collection в COM сервере
|
|||
|---|---|---|---|
|
#18+
Public Function Add(Obj As Variant, key As String) As Variant ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2009, 13:14 |
|
||
|
Использование Collection в COM сервере
|
|||
|---|---|---|---|
|
#18+
Переписал на авторPublic Function Add(Obj As Object, key As String) As Variant Проблема осталась. Теперь можно передать только объекты (логично), на самописный класс ругается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2009, 13:45 |
|
||
|
Использование Collection в COM сервере
|
|||
|---|---|---|---|
|
#18+
так у вас не выйдет вам надо свою собственную коллекцию использовать на основе своего универсального класса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2009, 13:50 |
|
||
|
Использование Collection в COM сервере
|
|||
|---|---|---|---|
|
#18+
Еще нет инициализации коллекции внутри класса переносчика Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2009, 13:55 |
|
||
|
Использование Collection в COM сервере
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2009, 14:40 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36127554&tid=2160693]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 371ms |

| 0 / 0 |
