|
|
|
передача ссылки на интерфейс в VBScript
|
|||
|---|---|---|---|
|
#18+
Господа, есть такая проблема. Имеется программа на Delphi c двумя automation-объектами. Первый объект (Obj1) умеест создавать второй объект (Obj2), и передавать наружу ссылку на его интерфейс. Вопрос: как в VBScript можно воспользоваться этой ссылкой, т.е. вызвать метод объекта Obj2? Т.е. надо чего-то типа --- Dim Obj1, Obj2 Set Obj1 = CreateObject("MyApp.Object1") Set Obj2 = Obj1.CreateObject2 MsgBox Obj2.GetMessage --- В таком коде VBScript упорно не хочет воспринимать Obj2 как объект. Как можно добиться желаемого эффекта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2005, 22:12:19 |
|
||
|
передача ссылки на интерфейс в VBScript
|
|||
|---|---|---|---|
|
#18+
1 А ошибка какая ? 2 В скриптовом языке можно "добраться" только до Default интерфейса класса Scripting Clients and User-defined Interfaces there's a problem when you have a component that implements user-defined interfaces. Scripting clients can have trouble using the component. The problem is that scripting clients are written in typeless languages . For example, when you're writing VBScript in an ASP page, your variables and parameters are always defined as variants. When you establish a connection to a COM object, you cannot specify which interface you want to use. Instead, a VBScript client is always connected to a COM object through the interface that's marked as the default for the component being instantiated В статье описан и workaround проблемы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2005, 12:28:28 |
|
||
|
передача ссылки на интерфейс в VBScript
|
|||
|---|---|---|---|
|
#18+
Alexey Kudinov1 А ошибка какая ? В вышеприведенном коде - ошибка Object required на "Set Obj2 = Obj1.CreateObject2" Alexey Kudinov 2 В скриптовом языке можно "добраться" только до Default интерфейса класса Scripting Clients and User-defined Interfaces В этой статье рассматриваются не совсем то, что мне нужно - у меня два класса со своими default-интерфейсами, а не один со множеством интерфейсов. Вот только сделать с этой ссылкой я ничего не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2005, 18:06:12 |
|
||
|
передача ссылки на интерфейс в VBScript
|
|||
|---|---|---|---|
|
#18+
dmJonny Alexey Kudinov1 А ошибка какая ? В вышеприведенном коде - ошибка Object required на "Set Obj2 = Obj1.CreateObject2" Значит метод CreateObject2 класса MyApp.Object1 не возвращает объект ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2005, 18:41:45 |
|
||
|
передача ссылки на интерфейс в VBScript
|
|||
|---|---|---|---|
|
#18+
Alexey KudinovЗначит метод CreateObject2 класса MyApp.Object1 не возвращает объект Это верно, он возвращает ссылку на интерфейс. А CreateObject не то же самое делает? (даже в статье упоминается, возвращаеться ссылка на дефолтный интерфейс) И каким образом можно в CreateObject2 указать, что возвращается объект? (и сервер (на Delphi), и клиента я пишу сам, так что могу методы эти менять). Насколько я понимаю, нет смысла возвращать какую-то другую сущность, кроме ссылки на интерфейс (например, ссылку на экземпляр нового объекта)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2005, 10:27:49 |
|
||
|
передача ссылки на интерфейс в VBScript
|
|||
|---|---|---|---|
|
#18+
dmJonny Это верно, он возвращает ссылку на интерфейс. А CreateObject не то же самое делает? (даже в статье упоминается, возвращаеться ссылка на дефолтный интерфейс) И каким образом можно в CreateObject2 указать, что возвращается объект? (и сервер (на Delphi), и клиента я пишу сам, так что могу методы эти менять). Насколько я понимаю, нет смысла возвращать какую-то другую сущность, кроме ссылки на интерфейс (например, ссылку на экземпляр нового объекта)? Есть интерфейсы. Есть классы, они имплементируют интерфейсы. А есть объекты - это экземпляры классов. Default интерфейс - это имя класса. Поскольку работа всегда (в VB) идет с объектами (экземплярами классов), то и возвращать надо объект. Именно это и делает CreateObject. Он _создает экземпляр объекта_ класса. Про то каким образом можно в CreateObject2 указать, что возвращается объект лучше спросить в форуме Delphi ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2005, 12:13:24 |
|
||
|
|

start [/forum/topic.php?fid=60&tid=2167992]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 317ms |

| 0 / 0 |
