powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JScrit WSH + .Net C# массивы
5 сообщений из 5, страница 1 из 1
JScrit WSH + .Net C# массивы
    #34629533
Guest2222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть COM-компонетн, написанный на C#. В сценарии для Windows Script Host нужно создать этот объект и вызвать методы используя JScript.

Не получается обработать результаты метода, который возвращает массив строк. Как можно получить доступ к элементам массива?

Отлатчик Visual Studio 2005 при наведении курсора мышки на переменную, в которой должны быть строки показывает возвращаемые элементы правильно.

Код: 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.
using System;

namespace ComInteraction
{
    public interface ITest
    {
        String About { get; }
    }

    public class TestClass : ITest
    {
        public String About
        {
            get
            {
                return "This is TestClass class";
            }
        }

        public string GetString(string val)
        {
            return "This is a val (" + val + ")";
        }

        public string[] GetStrings(string val)
        {
            string[] strings = new string[ 10 ];

            for (int i =  0 ; i <  10 ; i++)
                strings[i] = "This is a val (" + val + ") № " + i;

            return strings;
        }
    }
}


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
var testObj;
var strBuffer = "123";

testObj = new ActiveXObject("ComInteraction.TestClass");

var string = testObj.GetString(strBuffer);
WshShell.Popup(string); // <---------- Нормально

var strings = testObj.GetStrings(strBuffer);
WshShell.Popup(strings[ 0 ]); // <---------- Ошибка
...
Рейтинг: 0 / 0
JScrit WSH + .Net C# массивы
    #34631347
1211212
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я так понимаю, вы выставили GetString через свойство класса в интерфейсе, а метод GetStrings в интефрейсе не объявлен - просто не видит.
...
Рейтинг: 0 / 0
JScrit WSH + .Net C# массивы
    #34633885
Guest2222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опечатка, конечно же в интерфейсе есть все нужные методы
...
Рейтинг: 0 / 0
JScrit WSH + .Net C# массивы
    #34638661
Guest2222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но всё равно не работает
...
Рейтинг: 0 / 0
JScrit WSH + .Net C# массивы
    #34639166
1211212
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Очевидно не понимает .Net - массив.
А наоборот, что-нибудь вроде:
C#
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
public void GetStrings(string val, ref string[] arr)
        {

            for (int i =  0 ; i <  10 ; i++)
                arr[i] = "This is a val (" + val + ") № " + i;
        }

JS - обычный массив:
Код: plaintext
1.
2.
var arr = new Array( 10 );
GetStrings(strBuffer, arr);
JS - SafeArray:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<SCRIPT LANGUAGE=”VBScript”>
Dim myArray( 10 )
</SCRIPT>
<SCRIPT LANGUAGE=”JavaScript”>
var arr = new VBArray(myArray);
GetStrings(strBuffer, arr);
</SCRIPT>
не предстаавляю как ему сказать ref из JS...

Не пробовали?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JScrit WSH + .Net C# массивы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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