Я использую приложение Windows, которое предоставляет интерфейс COM для сценариев расширения. Скудная документация содержит несколько примеров в VBScript, поэтому я начал внедрять свою автоматизацию в VBScript.
Это будет выглядеть примерно так:
Set App = GetObject(, "MYAPP.Application")
MyObj = App.Object
MyArr = MyObj.ArrData
IsArray(MyArr) ' True
TypeName(MyArr) ' Long()
Lbound(MyArr) ' 0
Ubound(MyArr) ' 10
MyArr(1) ' Type Mismatch Error
При ближайшем рассмотрении объект массива имеет тип Long () (Array of Longs). После изучения проблемы, насколько я понимаю, VBScript не может получить доступ к элементам массива по индексу, если массив не имеет тип Variant; что это ограничение VBScript как языка. Я не могу внести изменения, как в этом ответе , потому что у меня нет доступа к исходному приложению, которое я пытаюсь расширить.
Является ли ошибка, которую я вижу, чисто ограничением языка? Смогу ли я получить доступ к переменным массива, возвращаемым интерфейсом COM, перенеся мой код на другой язык, например C #, например?