WideStudio Programming Guide

| WideStudio Programming Guide | WideStudio Index Table of contents

> ## 访问远程实例

> 通过对象管理实例(每个载入模块中存在一个)，访问远程实例。

> 对象管理类 | 实例获得函数
> WSCbaseList | WSCbaseList* WSGIappObjectList()

> 按照如下步骤获得远程对象实例。

>     #include  //访问WSGIappObjectList()
>     #include     //访问虚拟远程实例
>     ...
>     void event_procedure(WSCbase* object){

>       //通过对象管理实例获得 WSCRbase 指针
>       char* obj_name   = "newvlab_001";     //远程实例名为newvlab_001
>       WSCRbase* rinstance = WSGIappObjectList()->getRemoteInstance(obj_name);

>       //通过虚拟远程实例访问远程实例名
>       rinstance->setProperty(WSNlabelString,"HELLO WORLD");

> rinstance 是用于实例访问远程实例的虚拟远程实例。通过虚拟远程实例， 将远程实例对象名作为参数，可以如同访问普通对象实例一样，访问远程实例。

> ### 远程实例的类型转换

> 通过对象管理获得的虚拟远程实例，可以如同普通对象一样将其类型转换为基类， 从而使用基类的方法。在下面的例子中，为了调用WSClist::addItem()方法，将 虚拟远程实例从 WSCRbase 型转换为 WSCRlist 类。

>     #include  //访问WSGIappObjectList()
>     #include     //访问虚拟远程实例
>     ...
>     void event_procedure(WSCbase* object){

>       //通过对象管理实例获得 WSCRbase 指针
>       char* obj_name   = "newlist_001";     //远程实例名为newvlab_001
>       WSCRbase* rinstance = WSGIappObjectList()->getRemoteInstance(obj_name);

>       //将虚拟远程实例作为 WSClist 基类，类型转换为虚拟远程类 WSCRlist
>       WSCRlist* rlist = (WSCRlist*)rinstance->cast("WSCRlist");
>       if (rlist == NULL){
>         //如果不是 WSCRlist 类
>         return;
>       }

>       //通过 WSCRlist 虚拟远程实例类，调用 WSClist 类的方法
>       rlist->addItem("item..");

>     }

Document Release 3.70 for WideStudio ver 3.70, Feb 2004

WideStudio documents index | Table of contents

Copyright(C) T. Hirabayashi, 2000-2004 | Last modified: Feb 25, 2004